mea*_*our 68 docker dockerfile docker-compose
Docker 1.9允许将参数传递给dockerfile.请参阅链接:https://docs.docker.com/engine/reference/builder/#arg
如何在docker-compose.yml中传递相同的参数?
如果可能的话,请提供一个例子.
小智 73
现在可以将docker-compose v2 +作为build对象的一部分来完成;
泊坞窗,compose.yml
version: '2'
services:
my_image_name:
build:
context: . #current dir as build context
args:
var1: 1
var2: c
Run Code Online (Sandbox Code Playgroud)
请参阅docker撰写文档.
在上面的示例中,"var1"和"var2"将被发送到构建环境.
注意:与变量environment具有相同名称的任何env变量(使用块指定args)都将覆盖该变量.
Hem*_*ela 69
现在docker-compose支持变量替换.
Compose使用docker-compose运行的shell环境中的变量值.例如,假设shell包含POSTGRES_VERSION=9.3并且您在docker-compose.yml文件中提供此配置:
db:
image: "postgres:${POSTGRES_VERSION}"
Run Code Online (Sandbox Code Playgroud)
docker-compose up使用此配置运行时,Compose会POSTGRES_VERSION在shell中查找环境变量并将其值替换为.对于此示例,Compose image会postgres:9.3在运行配置之前解析to .
dne*_*hin 28
此功能已在Compose 1.6中添加.
参考:https://docs.docker.com/compose/compose-file/#args
services:
web:
build:
context: .
args:
FOO: foo
Run Code Online (Sandbox Code Playgroud)
在Linux shell上创建变量环境:
export TAG=0.1.2
Run Code Online (Sandbox Code Playgroud)
在 docker-compose.yml 中设置变量
db:
image: "redis:${TAG}"
Run Code Online (Sandbox Code Playgroud)
验证值是否被替换
docker-compose config
Run Code Online (Sandbox Code Playgroud)
要添加到这些答案中的内容是,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}
| 归档时间: |
|
| 查看次数: |
90482 次 |
| 最近记录: |