我有一个repository,可以构建三个不同的图像:
powerpy-base
powerpy-web
powerpy-worker
powerpy-web
和powerpy-worker
都使用powerpy-base
中的FROM
关键字从Dockerfile
继承。
我在项目中使用Docker Compose来运行Redis和RabbitMQ容器。有没有办法让我告诉Docker Compose我想先建立基本图像然后再建立web和worker图像?
答案 0 :(得分:4)
您可以使用depends_on
强制执行订单,但该订单也会在“运行时”(docker-compose up
)期间应用,这可能不正确。
如果你只是使用compose来构建图像,它应该没问题。
您还可以将其拆分为两个撰写文件。一个docker-compose.build.yml
,其depends_on
用于构建,另一个用于将图像作为服务运行。
答案 1 :(得分:1)
关于运行容器:
之前是bug,但是自从docker-compose v1.10以来,他们修复了它。 https://blog.docker.com/2016/02/docker-1-10/
重新启动守护程序时以正确的顺序启动链接的容器:这是一件小事,但如果你遇到它,你就会知道它是什么令人头疼的事。如果重新启动带有链接容器的守护程序,如果链接容器尚未运行,它们有时无法启动。引擎现在将尝试以正确的顺序启动容器。
关于构建: 您需要先构建基本图像。