设置所有容器的相同环境变量在Docker Compose中的相同值

问题描述 投票:0回答:1
环境变量,我可以很容易地执行此操作。

,指定的命令行不起作用

% docker compose -f dev.compose.yml up -e HTTP_PROXY='http://192.168.5.2:15236' -e HTTPS_PROXY='http://192.168.5.2:15236' --build unknown shorthand flag: 'e' in -e % docker compose -f dev.compose.yml up --env HTTP_PROXY='http://192.168.5.2:15236' --env HTTPS_PROXY='http://192.168.5.2:15236' --build unknown flag: --env

是我可以使每个容器都使用相同的环境变量而无需重复的方法吗?

我知道的唯一方法是

services: one: environment: HTTP_PROXY: same as all the others two: environment: HTTP_PROXY: same as all the others three: environment: HTTP_PROXY: same as all the others
这有两个缺点:1。重复,2。我不想影响团队使用的代码库(所以我必须围绕VC工作)

如果您在主机上设置了一个环境变量,则可以将其传递给所有容器。
获取此docker-compose.yml文件

services: service1: image: alpine command: env environment: - HTTP_PROXY=${INPUT_HTTP_PROXY} service2: image: alpine command: env environment: - HTTP_PROXY=${INPUT_HTTP_PROXY} service3: image: alpine command: env environment: - HTTP_PROXY=${INPUT_HTTP_PROXY}

docker docker-compose
1个回答
0
投票
运行

INPUT_HTTP_PROXY=MyValue docker compose up

印刷

service3-1  | PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
service3-1  | HOSTNAME=54a87a6d2db8
service1-1  | PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
service1-1  | HOSTNAME=5035462ed23f
service1-1  | HTTP_PROXY=MyValue
service1-1  | HOME=/root
service3-1  | HTTP_PROXY=MyValue
service3-1  | HOME=/root
service2-1  | PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
service2-1  | HOSTNAME=71280112fee2
service2-1  | HTTP_PROXY=MyValue
service2-1  | HOME=/root

表明HTTP_PROXY值均已在所有3个容器中设置。


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.