Docker compose环境变量声明

本文介绍了如何在Docker Compose中声明和使用环境变量,包括通过.env文件设置默认变量,以及两种类型的环境变量:一种用于变量代换,简化多compose文件中相同image版本的维护;另一种作为compose命令参数,控制docker的交互方式。

可以一个单独的扩展名为.env的文件中为Docker compose设置默认环境变量,文件放置在执行docker-compose命令时所在的目录即可生效,也就是说可以将多种版本的.env放置在不同的目录下,执行docker-compose命令时在那个目录,那个.env文件就会生效。如果在定义compose文件时又一次指定了某个环境变量,那么.env文件中定义的环境变量将会被覆盖。

语法规则

  • 每行定义一个环境变量,格式为VAR=VAL。
  • #开头的行为注释行,忽略。
  • 忽略空白行。
  • 对单引号双引号不作转义。

环境变量类型

能够定义的环境变量有两类,第一类就作变量代换。假如你需要定义多个compose文件,有多个compose文件中的服务需要使用某个相同版本的image。在这种情况下,如果版本号发生变更,则需要对每个compose文件进行修改,其实没有必要。可以将版本号当成环境变量定义在.env文件中,在每个compose文件中对这个环境进行引用、替换,这样当修改版本号时,只需要修改.env文件一个地方就可以,维护起来相当方便,如下例。
.env文件包含:

POSTGRES_VERSION=9.3

compose配置文件包含:

db:
  image: "postgres:${POSTGRES_VERSION}"

第二类环境变量主要供compose命令在运行时使用,名称固定。主要作用是定义compose命令如何与docker交互。如下表:

变量名描述
COMPOSE_API_VERSION有时会发生compose调用API,Docker引擎不支持而报错。首先调查Docker引擎支持的compose版本号,并明确设置在这里。
COMPOSE_CONVERT_WINDOWS_PATHSwindows系统与Linux系统之间路径风格不一致,这个负责转换,默认为0不支持,应该设置成1。
COMPOSE_FILE明确指定compose文件路径,默认情况下compose命令自动搜索docker-compose.yml文件,多个compose文件用':'分隔。
COMPOSE_HTTP_TIMEOUTcompose访问docker引擎的超时时间。
COMPOSE_TLS_VERSION使用的TLS版本号,如TLSv1, TLSv1_1, TLSv1_2。
COMPOSE_PROJECT_NAME项目名称。如果指定,则compose中定义的服务在实例化时会以项目名称为前缀,便于管理,查看。
DOCKER_CERT_PATH有时访问docker需要证书,这个是路径。
DOCKER_HOST定义docker主机及端口
DOCKER_TLS_VERIFY设置成任意值,只要不为空,保证TLS可用,为什么会这样不知道。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值