env_file

添加来自一个文件的环境变量。可以是单个值或者一个列表值。

如果通过docker-compose -f FILE的形式指定一个Compose文件,env_file文件的路径是相对于Compose文件所在的路径的。

声明在environment部分的环境变量会覆盖这些值,即使这些值是空值或未定义的值。

 env_file: .env
 env_file:
   - ./common.env
   - ./apps/web.env
   - /opt/runtime_opts.env

env file文件中的内容是以VAR=VAL定义的。#开头的行会被当成注释并且被忽视。空行也会被忽视。

 # Set Rails/Rack environment
 RACK_ENV=development

Note:

如果服务指定了build选项,env文件中定义的变量在build时是不可见的。使用build的args子选项来定义构建时的环境变量。

VAL的值被使用且不会再被更改。例如,如果一个值被引号包围,引号会被包含在值中传递给Compose。

需要记住的是,列表中的文件顺序在决定赋给多次出现的变量的值时是非常重要的。列表中的文件处理顺序是从上到下的。对于相同的变量在a.env指定了,然后在b,env中分配了一个不同的值,如果b,env在列表的位置是在a.env的下面,那么b.env中的值会保留。例如下面的例子:

 services:
   some-service:
     env_file:
       - a.env
       - b.env

添加下面的文件:

 # a.env
 VAR=1
 # b.env
 VAR=hello

$VAR的值为hello。

Last updated