docker-compose环境变量解析教程
在docker-compose中,有多个部分以不同方式处理环境变量。
在docker-compose文件中,可以通过环境变量来替换特定值。例如:
web:
image: "webapp:${tag}"
如果有多个环境变量,可以通过指定环境变量文件的路径来替换它们。默认情况下,docker-compose命令会查找当前目录下名为.env的文件。您还可以通过将文件路径作为参数传递,以便将其存储在其他位置,并进行适当命名,例如.env.ci、.env.dev或.env.Prod。使用以下命令传递文件路径:
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”配置选项,您可以将多个环境变量从外部文件传递到服务的容器,类似于在docker run中使用–env-file=file:
web:
env_file:
- web-variables.env
要在一次性容器中设置环境变量,您可以使用docker-compose run命令,类似于docker run -e:
docker-compose run -e DEBUG=1 web python console.py
您也可以通过不赋值的方式从外壳传递变量:
docker-compose run -e DEBUG web python console.py
在这种情况下,容器中的DEBUG变量同样会取自外壳中的相应变量。
注意:
1. 必须保留并原样返回所有 [[[IMG_n]]] 占位符。
