Docker编写如何使用build扩展服务以使用映像

Docker编写如何使用build扩展服务以使用映像,docker,docker-compose,Docker,Docker Compose,有一个基本的docker compose.yml,如下所示: version: '2' services: web: build: . ... 如何将其扩展为使用图像 docker compose.prod.yml version: '2' services: web: image: username/repo:tag 使用dockerdocker compose-f docker-compose.yml-f docker-compose.prod.yml up运行它

有一个基本的
docker compose.yml
,如下所示:

version: '2'
services:
  web:
    build: .
...
如何将其扩展为使用图像

docker compose.prod.yml

version: '2'
services:
  web:
    image: username/repo:tag
使用docker
docker compose-f docker-compose.yml-f docker-compose.prod.yml up运行它
仍然提示:

建立网站
步骤1/x:从

我试过使用
docker-compose-f docker-compose.yml-f docker-compose.prod.yml-up--no build

错误:需要生成服务“web”,但未传递任何生成


我期待的是“取而代之的名称/回购信息”。我有哪些选择?或者我需要创建一个完整的重复文件来处理这个轻微的修改吗?

省略基础
docker compose.yml
上的
build
,并将其放在
docker compose.override.yml
文件中

运行docker compose up时,它会自动读取覆盖

摘自

由于您的
docker compose.yml
文件必须具有内部版本或映像,因此我们将使用优先级较低的映像,从而导致:

version: '2'
services:
  web:
    image: repo
[...]
现在让我们转到默认情况下运行的
docker compose.override.yml
(意思是
docker compose up
docker compose run web命令)

默认情况下,我们希望它从我们的
Dockerfile
构建映像,因此我们只需使用
build:.

version: '2'
services:
  web:
    build: .
使用
docker-compose-f docker-compose.yml-f docker-compose.yml-f docker-compose.prod.yml up运行的生产版本
docker-compose.prod.yml
与此版本类似,只是在这种情况下,我们希望它从docker存储库获取图像:

version: '2'
services:
  web:
    image: repo
由于我们的基本
docker compose.yml
文件中已经有了相同的
image:repo
,因此我们可以在这里省略它(但这是完全可选的)