Aug*_*ger 7 docker docker-compose
我有:
docker-compose.yml:
services:
app:
build: .
Run Code Online (Sandbox Code Playgroud)
和docker-compose.override.yml:
services:
app:
image: my_repo/my_app:my_tag
Run Code Online (Sandbox Code Playgroud)
当我这样做时docker-compose up,它实际上是这样做的build: .,而不是使用重写image: my_repo/my_app:my_tag。
我想我应该选择某种build: falseorbuild: none确保它读取image属性,不是吗?由于覆盖看起来就像合并,因此结果就像两个条目都在那里一样:
services:
app:
build: .
image: my_repo/my_app:my_tag
Run Code Online (Sandbox Code Playgroud)
似乎build是优先的image(来自文档)。
小智 2
我能够build使用 . 从渲染的配置中删除该部分!reset null。
以这两个文件为例:
docker-compose.yml
services:
backend:
build:
context: .
dockerfile: backend/docker/Dockerfile
Run Code Online (Sandbox Code Playgroud)
docker-compose.dev.yml
services:
backend:
image: my/dev/image:0.9
build: !reset null
Run Code Online (Sandbox Code Playgroud)
使用 查看渲染的配置时docker compose -f docker-compose.yml -f docker-compose.dev.yml config,结果如下:
name: test
services:
backend:
image: my/dev/image:0.9
networks:
default: null
networks:
default:
name: test_default
Run Code Online (Sandbox Code Playgroud)
这在使用时也有效docker-compose.override.yml(即不手动指定多个撰写文件时)
文档中也提到了这一点:https ://docs.docker.com/compose/compose-file/13-merge/
使用 compose 版本 2.18.1 进行测试。
| 归档时间: |
|
| 查看次数: |
2155 次 |
| 最近记录: |