Dockerfile中的单独特定配置

时间:2015-05-21 20:25:21

标签: docker separation-of-concerns

我的码头图片存在设计问题。我创建了一个简单的Nginx图像,并在额外的文件中添加了一些配置。

这是我的Dockerfile:

FROM debian:wheezy

RUN apt-get update && apt-get install -y wget && \
echo "deb http://packages.dotdeb.org wheezy all" >>  /etc/apt/sources.list && \
echo "deb-src http://packages.dotdeb.org wheezy all" >>  /etc/apt/sources.list && \
wget http://www.dotdeb.org/dotdeb.gpg && apt-key add dotdeb.gpg && \
apt-get update && apt-get install -y nginx

RUN rm -rf /var/lib/apt/lists/* && \
echo "\ndaemon off;" >> /etc/nginx/nginx.conf && \
chown -R www-data:www-data /var/lib/nginx

ADD ./nginx/server.conf /etc/nginx/sites-available/default
ADD ./nginx/extra_conf /etc/nginx/

....

有了这个,我想在docker注册表中创建一个自动构建(来自我的bitbucket帐户)。在构建期间,Docker需要有nginx/server.conf/nginx/extra_conf的路径。恕我直言,这个配置非常用户/项目,不应该包含在这个级别(也可能不在版本中)。

如何更具通用性?

我想用ONBUILD指令添加我的文件并创建一个Dockerfile孩子。问题是,它会创建一个无用的继承级别。

THX, 此致

1 个答案:

答案 0 :(得分:3)

您可以使用音量,因此您可以在主机上的/path/to/nginx/conf.d上存储配置文件:

docker run -v /path/to/nginx/conf.d:/etc/nginx/conf.d:ro nginx

卷也适用于常规文件。