$ docker-compose config
version: '3'
services:
web:
image: 'webapp:v1.5'
shell 中的值优先于
.env 文件中指定的值。如果在 shell 中将 TAG 设置为不同的值,则镜像中将使用该值:
$ export TAG=v2.0
$ docker-compose configversion: '3'
services:
web:
image: 'webapp:v2.0'
当在多个文件中设置相同的环境变量时,以下是 Compose 用于选择要使用的值的优先级:
Compose 文件
Environment 文件
Dockerfile
变量未定义
在下面的例子中,我们在 Environment 文件和 Compose 文件上设置了相同的环境变量:
$ cat ./Docker/api/api.env
NODE_ENV=test$ cat docker-compose.yml
version: '3'
services:
api:
image: 'node:6-alpine'
env_file:
- ./Docker/api/api.env
environment:
- NODE_ENV=production
运行容器时,在 Compose 文件中定义的环境变量优先。
$ docker-compose exec api nodeprocess.env.NODE_ENV
'production'
只有在
environment 或
env_file 没有 Docker Compose 条目时,
Dockerfile 中的任何
ARG 或
ENV 设置才会评估(evaluate)。NodeJS 容器的细节
如果你有脚本的 package.json 条目像 NODE_ENV=test node server.js 一样启动,那么这将覆盖 docker-compose.yml 文件中的任何设置。
7. 使用环境变量配置 Compose
有几个环境变量可用来配置 Docker Compose 命令行行为。它们以 COMPOSE_ 或 DOCKER_ 开头,并记录在CLI 环境变量中。
8. 通过 link 创建环境变量
在第一版 Compose 文件中使用 links 选项时,会为每个链接创建环境变量。它们记录在 Link环境变量参考 中。
但是,这些变量已被弃用。link 改为为主机创建别名。
原文地址
您可能感兴趣的文章:Docker Compose引用环境变量的方法示例docker中的环境变量使用与常见问题解决方案










