可以一个单独的扩展名为.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配置文件包含:
image: "postgres:${POSTGRES_VERSION}"
第二类环境变量主要供compose命令在运行时使用,名称固定。主要作用是定义compose命令如何与docker交互。如下表:
变量名
|
描述
|
COMPOSE_API_VERSION
|
有时会发生compose调用API,Docker引擎不支持而报错。首先调查Docker引擎支持的compose版本号,并明确设置在这里。
|
COMPOSE_CONVERT_WINDOWS_PATHS
|
windows系统与Linux系统之间路径风格不一致,这个负责转换,默认为0不支持,应该设置成1。
|
COMPOSE_FILE
|
明确指定compose文件路径,默认情况下compose命令自动搜索docker-compose.yml文件,多个compose文件用':'分隔。
|
COMPOSE_HTTP_TIMEOUT
|
compose访问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可用,为什么会这样不知道。
|
可以一个单独的扩展名为.env的文件中为Docker compose设置默认环境变量,文件放置在执行docker-compose命令时所在的目录即可生效,也就是说可以将多种版本的.env放置在不同的目录下,执行docker-compose命令时在那个目录,那个.env文件就会生效。如果在定义compose文件时又一次指定了某个环境变量,那么.env文件中定义的环境变量将会被覆盖。语法规则每...
在项目中,往往需要在
docker
-
com
pose
.yml 文件中使用
环境变量
来控制不同的条件和使用场景。本文集中介绍
docker
com
pose
引用
环境变量
的方式。
说明:本文的演示环境为 ubuntu 16.04。
Com
pose
CLI 与
环境变量
Com
pose
CLI(
com
pose
com
mand-line 即
docker
-
com
pose
程序)能够识别名称为
COM
POSE
_PROJECT_NAME 和
COM
POSE
_FILE 等
环境变量
(具体支持的
环境变量
请参考这里)。比如我们可以通过这两个
环境变量
为
docker
-
com
pose
指定 project 的名称和配置文
文章目录方式一:在
Docker
file中设置
环境变量
方式二:在
docker
-
com
pose
.yml中设置
环境变量
方式三:结合
Docker
file、
docker
-
com
pose
.yml和.env设置
环境变量
方式一:在
Docker
file中设置
环境变量
ENV <KEY> <VALUE>
1.必须写死.不灵活
2.只能在构建镜像的时候设置的
环境变量
方式二:在docke...
必备知识:
在讲解服务配置文件和环境配置文件之前,首先要对
docker
以及编排工具
com
pose
有一定的了解,然后,才能结合服务配置文件编排整个项目的服务以及其依赖关系等。
环境变量
:在容器中生效的全局变量值
环境配置文件:可以替换
com
pose
服务配置文件中的属性变量。
com
pose
默认读取环境配置文件为“.env”,也可以通过--env-file指定相应的配置文件
com
pose
file:服务编排文件,主..
在项目中,往往需要在
docker
-
com
pose
.yml 文件中使用
环境变量
来控制不同的条件和使用场景,
docker
-
com
pose
支持多级设置
环境变量
。
docker
-
com
pose
.yml 文件中引用的
环境变量
,它们的优先级如下:
Com
pose
file
Shell environment variables
Environment file
Docker
file
Variable is not defined
以上优先级顺序都是指容器引用变量,不包括互相引用。
com
po
druid:
image:
docker
hub.paypalcorp.
com
/cim/druid:0.22.1
environment: # 设置
环境变量
- DRUID_SKIP_PORT_CHECK=1
entrypoin
在项目中,往往需要在
docker
-
com
pose
.yml 文件中使用
环境变量
来控制不同的条件和使用场景。本文集中介绍
docker
com
pose
引用
环境变量
的方式。说明:本文的演示环境为 ubuntu 16.04。
Com
pose
CLI 与
环境变量
Com
pose
CLI(
com
pose
com
mand-line 即
docker
-
com
pose
程序)能够识别名称为
COM
POSE
_PR...