在构建上组合Dockerfiles

时间:2016-04-28 18:00:52

标签: docker

我将 docker 用于开发和生产环境。

目前,我有两个Dockerfile

dev.dockerfile

FROM image:latest

[common code in dev and production, e.g. : RUN apt-get install php5]

prod.dockerfile

FROM image:latest

[common code in dev and production, e.g. : RUN apt-get install php5]

[code only used in production, e.g. : RUN docker-php-ext-install opcache]

我想要的是将公共代码合并到文件 common.dockerfile ,然后能够构建我的开发或生产图像,只运行一个docker命令。

您对如何实现这一目标有任何想法吗?

2 个答案:

答案 0 :(得分:3)

构建prod时设置环境变量。除非变量设置,否则让prod RUN语句为noop。

答案 1 :(得分:1)

我建议从dev图像继承生产图像,例如:

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

FROM <dev_image_name_and_tag>

[code only used in production, e.g. : RUN docker-php-ext-install opcache]