如何在 docker-compose 中传递参数?
How to pass arguments within docker-compose?
Docker 1.9 允许将参数传递给 docker 文件。
参见 link:https://docs.docker.com/engine/reference/builder/#arg
如何在 docker-compose.yml 中传递相同的参数?
如果可能的话,请也提供一个例子。
此功能是在 Compose 文件格式 1.6 中添加的。
参考:https://docs.docker.com/compose/compose-file/#args
services:
web:
build:
context: .
args:
FOO: foo
现在docker-compose
支持变量替换。
Compose 使用 shell 环境中的变量值,其中 docker-compose
是 运行。例如,假设 shell 包含 POSTGRES_VERSION=9.3
并且您在 docker-compose.yml
文件中提供此配置:
db:
image: "postgres:${POSTGRES_VERSION}"
当您使用此配置 运行 docker-compose up
时,Compose 在 shell 中查找 POSTGRES_VERSION
环境变量并将其值替换为。对于此示例,Compose在 运行 配置之前将 image
解析为 postgres:9.3
。
这现在可以从 docker 开始完成-compose v2+ 作为 build
对象的一部分;
docker-compose.yml
version: '2'
services:
my_image_name:
build:
context: . #current dir as build context
args:
var1: 1
var2: c
在上面的示例中,"var1" 和 "var2" 将被发送到构建环境。
注意:任何与 args
变量同名的环境变量(使用 environment
块指定)将覆盖该变量。
要添加到这些答案中的是 args
仅在使用 docker-compose up --build
时才会被拾取,而在使用 docker-compose build
时不会被拾取。如果你想在不同的步骤中构建和 运行,你需要使用 docker-compose build --build-arg YOUR_ENV_VAR=${YOUR_ENV_VAR}
或 docker build --build-arg YOUR_ENV_VAR=${YOUR_ENV_VAR}
在 Linux 上创建变量环境 shell:
export TAG=0.1.2
设置里面的变量docker-compose.yml
db:
image: "redis:${TAG}"
验证值是否被替换
docker-compose config
Docker 1.9 允许将参数传递给 docker 文件。 参见 link:https://docs.docker.com/engine/reference/builder/#arg
如何在 docker-compose.yml 中传递相同的参数?
如果可能的话,请也提供一个例子。
此功能是在 Compose 文件格式 1.6 中添加的。
参考:https://docs.docker.com/compose/compose-file/#args
services:
web:
build:
context: .
args:
FOO: foo
现在docker-compose
支持变量替换。
Compose 使用 shell 环境中的变量值,其中 docker-compose
是 运行。例如,假设 shell 包含 POSTGRES_VERSION=9.3
并且您在 docker-compose.yml
文件中提供此配置:
db:
image: "postgres:${POSTGRES_VERSION}"
当您使用此配置 运行 docker-compose up
时,Compose 在 shell 中查找 POSTGRES_VERSION
环境变量并将其值替换为。对于此示例,Compose在 运行 配置之前将 image
解析为 postgres:9.3
。
这现在可以从 docker 开始完成-compose v2+ 作为 build
对象的一部分;
docker-compose.yml
version: '2'
services:
my_image_name:
build:
context: . #current dir as build context
args:
var1: 1
var2: c
在上面的示例中,"var1" 和 "var2" 将被发送到构建环境。
注意:任何与 args
变量同名的环境变量(使用 environment
块指定)将覆盖该变量。
要添加到这些答案中的是 args
仅在使用 docker-compose up --build
时才会被拾取,而在使用 docker-compose build
时不会被拾取。如果你想在不同的步骤中构建和 运行,你需要使用 docker-compose build --build-arg YOUR_ENV_VAR=${YOUR_ENV_VAR}
或 docker build --build-arg YOUR_ENV_VAR=${YOUR_ENV_VAR}
在 Linux 上创建变量环境 shell:
export TAG=0.1.2
设置里面的变量docker-compose.yml
db: image: "redis:${TAG}"
验证值是否被替换
docker-compose config