Docker Compose 如何通过构建来扩展服务以改为使用镜像

2024-04-12

有基础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”,但 --no-build 已通过。

我期待的是“从名称/存储库消息中提取”。我有哪些选择?或者我是否需要创建一个完整的重复文件来处理这个轻微的修改?


省略build在基地上docker-compose.yml,并将其放置在docker-compose.override.yml file.

当您运行 docker-compose up 时,它会自动读取覆盖。

摘自Docker Compose 文档 https://docs.docker.com/compose/extends/#example-use-case.

自从你的docker-compose.yml文件必须具有构建或映像,我们将使用优先级较低的映像,从而导致:

version: '2'
services:
  web:
    image: repo
[...]

现在让我们继续docker-compose.override.yml,默认运行的那个(意思是docker-compose up or docker-compose run web command).

默认情况下,我们希望它从我们的构建图像Dockerfile,所以我们可以简单地使用build: .

version: '2'
services:
  web:
    build: .

生产一docker-compose.prod.yml通过使用运行docker-compose -f docker-compose.yml -f docker-compose.prod.yml up与此类似,只不过在本例中我们希望它从 Docker 存储库中获取映像:

version: '2'
services:
  web:
    image: repo

既然我们已经有相同的image: repo在我们的基地docker-compose.yml文件我们可以在这里省略它(但这完全是可选的)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker Compose 如何通过构建来扩展服务以改为使用镜像 的相关文章

随机推荐