gpt4 book ai didi

docker - 如何在通过相同 “docker-compose up”调用旋转的所有docker容器之间共享值?

转载 作者:行者123 更新时间:2023-12-02 19:08:33 26 4
gpt4 key购买 nike

语境

我们正在将较旧的应用程序迁移到docker,并且第一步是要克服一些限制。该数据库尚不能放入容器中,而且,我们团队中的所有开发人员都可以共享该数据库。因此,这个问题是为临时问题找到解决方法。

为了不与使用同一数据库的其他开发人员发生冲突,有一个适当的系统,在该系统中,每个开发人员计算机都使用其计算机唯一的值来启动应用程序。每个容器应使用相同的值。



我们正在使用docker-compose启动容器。有没有办法为它提供一个(环境)变量,该变量会传播到所有容器?

我如何尝试做到这一点:

我的docker-compose.yml看起来像这样:

my_service:
image: my_service:latest
command: ./my_service.sh
extends:
file: base.yml
service: base
environment:
- batch.id=${BATCH_ID}

然后我以为运行 BATCH_ID=$somevalue docker-compose up my_service会填充 ${BATCH_ID},但这似乎不起作用。

还有另一种方法吗?有更好的方法吗?

可选:理想情况下,应包含所有内容,以便开发人员可以调用 docker-compose up my_service使其自身计算出要传递给所有容器的值。但是从网上看到的情况来看,我认为这是不可能的。

最佳答案

你是对的。或者,您可以只指定环境变量名称:

my_service:

environment:
- BATCH_ID

因此,var BATCH_ID是从当前docker-compose执行范围定义的;并传递给同名容器

关于docker - 如何在通过相同 “docker-compose up”调用旋转的所有docker容器之间共享值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44906977/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com