docker - 将envvars传递到GoCD中的docker容器

标签 docker environment-variables go-cd

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

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

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

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

还有其他办法吗?

最佳答案

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

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

docker $(./munge_env_vars) ...

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

关于docker - 将envvars传递到GoCD中的docker容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54971262/

相关文章:

docker - Docker容器在启动后立即崩溃,而Node.js容器包含错误

python - 如果在 python 中设置,os.getenv 不能作为函数参数的默认值

java - Go 服务器未启动

Go-CD:如何使用API​​触发管道?

docker - 在GoCD-Agent中实现FooD(Docker之外的Docker)

elasticsearch - Docker swarm集群和elasticsearch,使用约束将服务绑定(bind)到特定节点

docker - 如何在 docker-compose 文件中初始化 PSQL 数据库?

Laravel安装帆问题((23)Failed writing body)

windows - 将分号放在 Windows PATH 环境变量中

powershell - 如何将文件下载到 $env :temp directory using powershell from cmd console?