官方说明:
多个文件,会按照顺序从上到下执行,会覆盖同名环境变量
.env可以和env_file同时使用,但是在.env中定义的变量不能在合成文件(yaml文件中再次声明使用)
优先级为 environment > env_file
env_file的文件地址与yaml文件事相对的
可以用 docker compose run -e 来覆盖.env文件里的值
使用env_file并且指定了文件地址,但是确实文件的话,会报错。如果设置了参数required=False,会跳过这个问题
${var} # 设置变量为var的值
${var:-default} # 如果已设置且非空就是var的值,否则为默认值
${var-default} # 如果已设置且非空就是var的值,否则为默认值
${var:?error} # 如果设置且非空,则返回VAR的值,否则退出并返回错误
${var?error} # 如果设置且非空,则返回VAR的值,否则退出并返回错误
${VAR:+replacement} # 如果设置了VAR且非空,则替换为replacement的值,否则为空
${VAR+replacement} # 如果设置了VAR且非空,则替换为replacement的值,否则为空
想要更多,就在 https://docs.docker.com/compose/compose-file/12-interpolation/