我有一个代码库,它构建了三个不同的镜像:
powerpy-base
powerpy-web
powerpy-worker
powerpy-web
和 powerpy-worker
都使用 Dockerfile
中的 FROM
关键字继承自 powerpy-base
。
在项目中,我使用 Docker Compose 运行 Redis 和 RabbitMQ 容器。有没有办法告诉 Docker Compose 我想先构建基础镜像,然后再构建 web 和 worker 镜像呢?
我有一个代码库,它构建了三个不同的镜像:
powerpy-base
powerpy-web
powerpy-worker
powerpy-web
和 powerpy-worker
都使用 Dockerfile
中的 FROM
关键字继承自 powerpy-base
。
在项目中,我使用 Docker Compose 运行 Redis 和 RabbitMQ 容器。有没有办法告诉 Docker Compose 我想先构建基础镜像,然后再构建 web 和 worker 镜像呢?
你可以使用 depends_on
来强制执行顺序,但是这个顺序也会在"运行时" (docker-compose up
) 应用,这可能不正确。
如果你仅使用compose来构建镜像,那么这应该没问题。
你还可以将其拆分为两个compose文件。一个 docker-compose.build.yml
文件,其中有针对构建的 depends_on
,以及一个单独的文件用于运行镜像作为服务。
这里有一个相关的问题:https://github.com/docker/compose/issues/295