Compose有多个部分以一种或另一种方式处理环境变量。
在compose文件中替换环境变量,可以在外壳中使用环境变量来填充Compose文件中的值:
web:
image: "webapp:${TAG}"
如果您有多个环境变量,则可以通过提供环境变量文件的路径来替换它们。默认情况下,该docker-compose 命令将.env在您运行该命令的目录中查找一个名为的文件。通过将文件作为参数,你可以存储在任何地方,并适当命名,例如.env.ci,.env.dev,.env.prod。使用以下--env-file选项传递文件路径:
docker-compose --env-file ./config/.env.dev up
在容器中设置环境变量
您可以使用'environment'键在服务的容器中设置环境变量 ,就像 docker run -e VARIABLE=VALUE ...:
web:
environment:
- DEBUG=1
将环境变量传递给容器
您可以使用'environment'键将环境变量从外壳直接传递到服务的容器,方法是 不给它们赋值,就像使用docker run -e VARIABLE ...:
web:
environment:
- DEBUG
所述的值DEBUG在容器变量是从值取为在其中撰写运行在壳中的相同变量。
“ env_file”配置选项
您可以使用'env_file'选项将多个环境变量从外部文件传递到服务的容器,就像使用docker run --env-file=FILE ...:
web:
env_file:
- web-variables.env
使用' -compose run'设置环境变量
与一样docker run -e,您可以使用以下命令在一次性容器中设置环境变量docker-compose run -e:
docker-compose run -e DEBUG=1 web python console.py
您也可以通过不给变量赋值来从外壳传递变量:
docker-compose run -e DEBUG web python console.py
所述的值DEBUG在容器变量是从值取为在其中撰写运行在壳中的相同变量。