问题描述
我想知道是否可以将参数或环境变量提供给 AppEngine 使用的 Dockerfile(弹性环境)。
我想使用这个命令:
copY ${STAGE}/keycloak-files/realm-config/* /opt/jboss/keycloak/realm-config/
“STAGE”变量将允许选择来源(我有一个“staging”和“production”目录,包含不同的配置)。
我有两个不同的 app.yml
文件,每个环境一个,但从我在线阅读的内容来看,环境变量在构建时不会暴露给 Dockerfile。
人们建议传递参数来完成任务。但是,在我们不直接执行 docker build 命令的 appengine 中,这怎么可能呢?
解决方法
正如@DamPlz 所说,在部署阶段没有直接的方法将 env 变量从 app.yaml 传递到 Dockerfile。以下是我能想到的一些解决方法:
- 一种选择是直接在 Dockerfile 中创建变量,如果您想在每次运行时更改它,您可以使用占位符值并在运行“gcloud app deploy”之前让脚本更新变量的值。
- 另一方面,您可以使用 Google Cloud Registry 中的构建触发器在 Docker image 中使用 user-defined substitutions 对其进行修改。