将envvars传递到GoCD中的docker容器

时间:2019-03-03 16:51:13

标签: docker environment-variables go-cd

我们有一个docker容器,并且在其中运行的程序希望设置许多envvar。有几种方法可以做到这一点,我很好奇什么是正确的方法:

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

2-在“作业配置”选项卡中定义envvar。在Docker构建期间将其导出。缺点:每个新作业都必须手动设置envvar,添加一个envvar将需要在一处更改所有作业。

3-在“作业配置”选项卡中定义envvar。在docker运行期间使用-e标志传递它们。缺点:每个新作业都必须手动设置envvar,添加一个envvar将需要在两个位置更改每个作业。

还有其他方法吗?

1 个答案:

答案 0 :(得分:1)

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

例如,您可以将DOCKER_A=aDOCKER_B=b转换为-e A=a -e B=b,并将其称为

docker $(./munge_env_vars) ...

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