,指定的命令行不起作用
% 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}
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个容器中设置。