对于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.yml
)Dockerfile_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镜像中工作。