2015-05-21 3 views
0

У меня проблема с дизайном с изображением докера. Я создал простое изображение Nginx и добавил некоторую конфигурацию в дополнительные файлы.Отдельная конфигурация в файле Docker

Вот мой 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/ 

.... 

С этим, я хочу создать автоматизированную сборку (с моего Bitbucket счета) в Докер реестре. Во время сборки Docker должен иметь путь к nginx/server.conf и /nginx/extra_conf. IMHO, эта конфигурация очень специфична для пользователя/проекта и не должна включаться на этом уровне (и, вероятно, также не быть в версировании).

Как я могу сделать что-то более общее?

Я подумал использовать инструкцию ONBUILD, чтобы добавить свои файлы и создать ребенка Dockerfile. Проблема в том, что она создает бесполезный уровень наследования.

Thx, С уважением

ответ

3

Вы можете использовать объем, таким образом, вы можете хранить конфигурационные файлы на /path/to/nginx/conf.d на хосте:

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

Volume также работает для обычных файлов.

+0

Thanls, это хорошая идея для совместного использования конфигурации через тома –