我将 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
命令。
您对如何实现这一目标有任何想法吗?
答案 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]