【发布时间】:2019-08-05 21:03:22
【问题描述】:
我目前正在寻找一种在 CI 中使用 Gitlab Secrets 定义 ENV 变量的方法,以便在需要部署容器时在构建时覆盖默认值。
据我所知,如果我不在构建命令中指定-e,就没有这种方法。但是,这对于一定数量的参数来说不是很实用。
我当前的命令目前看起来像这样:
# In .gitlab-ci
docker build -t $CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/production:${CI_COMMIT_REF_SLUG} -f .docker/production/Dockerfile .
# In Dockerfile
ENV MAILER_URL=${MAILER_URL:-"null://localhost"}
我知道我可以只使用构建参数,但我有很多设置,我想避免将它们放在 CI 中
【问题讨论】:
-
我知道这并不能回答问题,但是 - 您确定需要在构建时传递这些参数吗?也许在没有秘密的情况下构建图像然后在运行容器时添加它们更有意义?例如 - MAILER_URL 在构建时真的有必要吗?
-
其实是的,命令是在构建时执行的,需要在构建时指定。 MAILER_URL 只是一个例子。
标签: docker environment-variables gitlab-ci docker-build