Docker-compose:设置构建序列

时间:2017-09-01 08:01:42

标签: docker docker-compose

对于php应用程序,我有以下 docker-compose.yml

version:'2'
services:
  service:
    build:
      context: .
      dockerfile: Dockerfile
    image: "service"

  service_debug:
    build:
      context: .
      dockerfile: Dockerfile_debug
    image: "service_debug"
    ports:
      - "9001:9001"

同样在我的Dockerfile中,我有以下上下文

FROM php:7.0-fpm-alpine
MAINTAINER Monkey D. Luffy

EXPOSE 9000

VOLUME /var/www/html

#Do build stuff
#....

我还有另一个dockerfile,我将它基于我使用上面的dockerfile构建的docker镜像,我安装了xdebug。此文件已命名(根据docker-compose.ymlDockerfile_debug。这个图像将包含一些debuging工具(例如在我的情况下xdebug,但它可以是任何工具或设置):

FROM service
MAINTAINER Kurosaki Ichigo

EXPOSE 9001
EXPOSE 9000

RUN pecl install xdebug
RUN docker-php-ext-enable xdebug
RUN sed -i '1 a xdebug.remote_autostart=true' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN sed -i '1 a xdebug.remote_mode=req' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN sed -i '1 a xdebug.remote_handler=dbgp' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN sed -i '1 a xdebug.remote_connect_back=1 ' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN sed -i '1 a xdebug.remote_port=9001' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN sed -i '1 a xdebug.remote_host=127.0.0.1' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN sed -i '1 a xdebug.remote_enable=1' /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini

所以我的问题是当我运行docker-compose build时如何设置两个服务之间的构建序列以及如何根据service_debug的最新图像来构建我从service构建的图像}。

换句话说,我想同时生成生产就绪图像和调试图像,以便能够测试我的应用程序是否可以在我的生产就绪的docker镜像中工作。

1 个答案:

答案 0 :(得分:2)

您是否尝试过码头工具链接? https://docs.docker.com/compose/compose-file/#links