互联网技术 / 互联网资讯 · 2023年11月24日 0

docker-compose环境变量解析教程

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]]] 占位符。