在 Dockerfile 中单独指定具体配置

Separate specific configuration in Dockerfile

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

这是我的Docker文件:

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 的路径。恕我直言,此配置非常 user/project 具体,不应包含在此级别(并且可能也不在版本控制中)。

我怎样才能拥有更通用的东西?

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

谢谢, 问候

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

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

音量也适用于普通文件。