首页 > 解决方案 > 在部署 AppEngine flex 时将参数传递给 Docker 构建

问题描述

我想知道是否可以将参数或环境变量提供给 AppEngine(弹性环境)使用的 Dockerfile。

我想使用这个命令:

COPY ${STAGE}/keycloak-files/realm-config/* /opt/jboss/keycloak/realm-config/

“STAGE”变量将允许选择原点(我有一个“staging”和“production”目录,包含不同的配置)。

我有两个不同的app.yml文件,每个环境一个,但是从我在线阅读的内容来看,环境变量在构建时不会暴露给 Dockerfile。

人们建议通过参数来完成任务。但是,我们不直接执行 docker build 命令的 appengine 怎么可能呢?

标签: dockergoogle-app-engineenvironment-variablesdockerfileapp-engine-flexible

解决方案


正如@DamPlz 所说,在部署阶段没有直接的方法将 env 变量从 app.yaml 传递到 Dockerfile。以下是我能想到的一些解决方法:

  1. 一种选择是直接在 Dockerfile 中创建变量,如果您想在每次运行时更改它,您可以使用占位符值并让脚本在运行“gcloud app deploy”之前更新变量的值。
  2. 另一方面,您可以使用 Google Cloud Registry 中的构建触发器在Docker 映像 中使用用户定义的替换对其进行修改。

推荐阅读