docker-compose避免多次build同一个镜像

在docker-compose.yml指定了多个服务。他们的是使用相同的 Dockerfile 生成镜像。它们使用相同的镜像,但每个服务都有不同的command或者端口等其他信息。

在开发或自测过程中,经常使用 docker-compose up –build 来重建镜像。docker 会根据Dockerfile 两次相同的 myimage,比较浪费时间。

原来的配置是这样的:

version: '3'
services:
  abc:
    image: myimage
    command: abc
    build:
      context: .
      dockerfile: Dockerfile
  xyz:
    image: myimage
    command: xyz
    build:
      context: .
      dockerfile: Dockerfile

实际上,我们可以通过一些办法避免这个问题,修改配置为:

version: '3'
services:
  abc:
    image: myimage
    command: do abc
    build:
      context: .
      dockerfile: Dockerfile
  xyz:
    image: myimage
    command: do xyz
    depends_on:
     - abc

这样,如果没有 myimage 的情况下会根据 abc 中的 build 来构建镜像,然后在 abc 服务完成后,再启动 xyz 时直接使用已经存在的 myimage 了。

docker-compose避免多次build同一个镜像

原文链接:https://beltxman.com/3968.html,若无特殊说明本站内容为 行星带 原创,未经同意禁止转载。

发表评论

您的电子邮箱地址不会被公开。

Scroll to top