【问题标题】:passing envvars to docker containers in GoCD将环境变量传递给 GoCD 中的 docker 容器
【发布时间】:2019-03-04 19:58:35
【问题描述】:

我们有一个 docker 容器,其中运行的程序需要设置许多环境变量。有几种方法可以做到这一点,我很好奇正确的方法是什么:

1- 将 envvars 放入配置仓库,将其添加为材料,使用 docker --env-file 标志传递文件。缺点:传递 10 个环境变量似乎有点过分了。

2- 在作业配置选项卡中定义环境变量。在 docker build 期间导出它们。缺点:每个新作业都必须手动设置环境变量,添加环境变量需要在一个地方更改所有作业。

3- 在作业配置选项卡中定义环境变量。在 docker run 期间使用 -e 标志传递它们。缺点:每个新作业都必须手动设置环境变量,添加环境变量需要在两个位置更改每个作业。

还有其他方法吗?

【问题讨论】:

    标签: docker environment-variables go-cd


    【解决方案1】:

    还有另一种选择:编写一个小的 shell 脚本,将所有以特定前缀开头的环境变量传递给 docker

    例如,你可以把DOCKER_A=aDOCKER_B=b变成-e A=a -e B=b,然后调用它

    docker $(./munge_env_vars) ...
    

    然后您可以将所有环境变量放在一个位置(在 GoCD 配置中,或在版本控制下的 shell 脚本中,您可以 source),当您添加另一个环境变量时无需修改两个位置.

    【讨论】:

      猜你喜欢
      • 2015-09-18
      • 2022-01-16
      • 2021-06-07
      • 2020-02-23
      • 2015-08-10
      • 2016-12-08
      • 2021-06-25
      • 2017-09-18
      相关资源
      最近更新 更多