有没有办法在不同的环境(即: kubernetes )上部署lagom项目。开发,阶段,推动)这样我可以使用一个图像与多个配置覆盖?
例如,假设我有一个环境变量foo=bar-{{env}}。我想构建和发布一个映像和覆盖配置,以便在dev foo=bar-dev和prod foo=bar-prod中。
目前,我的理解是application.conf与图像绑定,不能被覆盖。如果这是正确的,有什么方法可以解决这个问题,这样我就不需要为每个环境创建多个映像了吗?
发布于 2018-05-23 10:08:46
您可以通过以下几种方式来做到这一点:
静态:
您可以在3个命名空间中创建3个部署,并将env变量添加到每个部署中。您可以为每个部署手动管理这些变量:
apiVersion: v1
kind: Pod
metadata:
namespace: dev
name: envar-demo
labels:
purpose: demonstrate-envars
spec:
containers:
- name: java-demo-container
image: my-super-java-app
env:
- name: foo
value: "bar-dev"
- name: JAVA_HOME
value: "/opt/java/jdk1.7.0_05/bin/java"Helm
您可以制作舵图,并使用包含变量的3个文件来部署应用程序。要开发图表,您可以阅读正式文件或在官方Kubernetes回购中找到一些示例
发布于 2018-06-03 16:50:21
或者,您可以设置typesafe config system属性变量来覆盖application.conf文件。
设置dockerfile系统变量:
ENTRYPOINT java -Dconfig.resource="$CONFIG_FILE"单位: kubernetes yml
env:
- name: CONFIG_FILE
value: "application.prod.conf"https://stackoverflow.com/questions/50476694
复制相似问题