给定一个非常简单的 docker-compose文件:
version: '3'
services:
test:
image: busybox
env_file:
- my.env
command: env
my.env
以及其中引用的文件:
FOO=BAR
按预期运行docker-compose up
打印(容器名称前缀默认为父目录的名称):
test_1 | PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
test_1 | HOSTNAME=00dc4fa7f38a
test_1 | FOO=BAR
test_1 | HOME=/root
tmp_test_1 exited with code 0
env_file
从外部覆盖变量,如FOO=SOMETHING_ELSE docker-compose up
,但不会反映在容器中。输出仍将FOO=BAR
包含my.env
.
是否有可能以某种方式覆盖env_file
从外部定义的变量,而不在文件内部更改它们?我知道如果我docker-compose.yml
用该行扩展我的文件它会起作用
environment:
- FOO
然而,这并不能真正扩展到更多的变量——人们总是必须确保env_file
和docker-compose.yml
是同步的以防止讨厌的错误。