在构build上结合Dockerfiles

我使用docker作为开发环境和生产环境。

目前,我有两个Dockerfile

dev.dockerfile

 FROM image:latest [common code in dev and production, eg : RUN apt-get install php5] 

prod.dockerfile

 FROM image:latest [common code in dev and production, eg : RUN apt-get install php5] [code only used in production, eg : RUN docker-php-ext-install opcache] 

我想要的是将通用代码合并到一个文件common.dockerfile ,然后能够通过只运行一个docker命令来构build我的开发或生产映像。

你有什么想法如何实现这一目标?

build立产品时设置一个环境variables。 让prod RUN语句成为noop,除非variables设置。

我build议从dev镜像inheritance产品镜像,例如:

dev.dockerfile保持不变,prod.dockerfile将如下所示:

 FROM <dev_image_name_and_tag> [code only used in production, eg : RUN docker-php-ext-install opcache]