使用Docker Compose构建多个图像?

时间:2016-03-09 03:26:41

标签: docker-compose

我有一个repository,可以构建三个不同的图像:

  1. powerpy-base
  2. powerpy-web
  3. powerpy-worker
  4. powerpy-webpowerpy-worker都使用powerpy-base中的FROM关键字从Dockerfile继承。

    我在项目中使用Docker Compose来运行Redis和RabbitMQ容器。有没有办法让我告诉Docker Compose我想先建立基本图像然后再建立web和worker图像?

2 个答案:

答案 0 :(得分:4)

您可以使用depends_on强制执行订单,但该订单也会在“运行时”(docker-compose up)期间应用,这可能不正确。

如果你只是使用compose来构建图像,它应该没问题。

您还可以将其拆分为两个撰写文件。一个docker-compose.build.yml,其depends_on用于构建,另一个用于将图像作为服务运行。

这是一个相关问题:https://github.com/docker/compose/issues/295

答案 1 :(得分:1)

关于运行容器:

之前是bug,但是自从docker-compose v1.10以来,他们修复了它。 https://blog.docker.com/2016/02/docker-1-10/

  

重新启动守护程序时以正确的顺序启动链接的容器:这是一件小事,但如果你遇到它,你就会知道它是什么令人头疼的事。如果重新启动带有链接容器的守护程序,如果链接容器尚未运行,它们有时无法启动。引擎现在将尝试以正确的顺序启动容器。

关于构建: 您需要先构建基本图像。