Str*_*ger 7 docker docker-compose
我正在重写默认docker-compose.yml使用文件docker-compose.override.yml如在此环节,我也能够指定ports并volumes在覆盖文件.
以类似的方式,是否也可以指定需要部署的映像版本?如果不是,在我们需要为图像指定不同版本的情况下,处理这种情况的最佳方法是什么?
对此的任何帮助都会很棒.
Str*_*ger 13
Docker已经拥有该功能.我尝试用简单的docker-compose覆盖图像名称,它正在工作.
例如,
docker-compose.yml 有内容,
my-httpd:
image: httpd:latest
ports:
- "1110:80"
Run Code Online (Sandbox Code Playgroud)
并docker-compose.override.yml与内容,
my-httpd:
image: httpd:2.4
Run Code Online (Sandbox Code Playgroud)
执行之后docker-compose -d,这里是docker ps info,
它使用portsfrom docker-compose.yml(而不是overrided)和imagefrom,docker-compose.override.yml因为它在这里被覆盖.
注意:这你有不同的名称和位置,你可以使用它像下面的命令来代替docker-compose -d,
docker-compose -f <DOCKER COMPOSE LOCATION> -f <OVERRIDE FILE LOCATION> up -d
Run Code Online (Sandbox Code Playgroud)
编辑2:
以上述方式覆盖只会替换非数组值,并且将合并数组变量.
例如,如果我ports在两个文件中都有一个数组,那么它将绑定两个端口而不是仅仅从重写文件中获取端口值,这与image部分(非数组)不同.
kwe*_*rle 10
对于您想做的事情,(现在?)有更好的选择。来自\n https://docs.docker.com/compose/environment-variables/
\n可以在 shell 中使用环境变量来填充 Compose 文件中的值:
\nweb:\n image: "webapp:${TAG}"\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
12062 次 |
| 最近记录: |