2016-05-20 5 views
3

Я новичок в Docker, и я пытаюсь просто запустить приложение nginx.Папка для установки контейнера Docker

Чтобы сделать это, у меня есть этот DockerFile:

FROM debian:wheezy 
MAINTAINER John Regan <[email protected]> 

RUN echo "deb http://nginx.org/packages/debian/ wheezy nginx" >> /etc/apt/sources.list.d/nginx.list 
RUN apt-key adv --fetch-keys "http://nginx.org/keys/nginx_signing.key" 

RUN apt-get update && apt-get -y dist-upgrade 
RUN apt-get -y install nginx openssl ca-certificates 

##Delete default repository 
RUN rm -rf /etc/nginx/conf.d/* 
RUN rm -rf /srv/www/* 

ADD conf/nginx.conf /etc/nginx/nginx.conf 
ADD conf/conf.d/default.conf /etc/nginx/conf.d/default.conf 
ADD html/index.html /srv/www/index.html 

VOLUME ["/etc/nginx"] 
VOLUME ["/srv/www"] 

EXPOSE 80 
EXPOSE 443 

ENTRYPOINT ["nginx"] 
CMD [] 

Моя папка является организовать так:

├── conf 
| ├── nginx.conf 
| └── conf.d 
|   └── default.conf 
├── html 
| └── index.html 

Команда на запуск контейнера:

sudo docker run -d -p 80:80 -v $pwd/conf:/etc/nginx -v $pwd/html:/srv/www my-nginx 

Но conatiner stop, и я получил это сообщение в журнале:

nginx: [emerg] open() "/etc/nginx/mime.types" failed (2: No such file or directory) in /etc/nginx/nginx.conf:14 

Я знаю, что журнал довольно ясен, но я не могу понять, почему он не работает.

Спасибо.

ответ

1

При монтаже вашего conf dir вы заменяете содержимое каталога /etc/nginx. вместо того, чтобы смонтировать nginx.conf файл и conf/conf.d - смотрите раздел монтажных файлов, https://docs.docker.com/v1.8/userguide/dockervolumes/

sudo docker run -d -p 80:80 -v $pwd/conf/conf.d:/etc/nginx/conf.d -v $pwd/conf/nginx.conf:/etc/nginx/nginx.conf -v $pwd/html:/srv/www my-nginx

0

Вы уверены, что конфигурация на nginx.conf верна? Ошибка, похоже, связана с nginx не с докером.

0

Опцию «объем», установите новую точку каталога, вы должны уже специфические особенности, если вам нужно монтировать только файл.

Смежные вопросы