2015-06-04 2 views
0

У меня есть docker-compose.yml с только nginx, но при запуске его объемы не найдены внутри контейнера nginx. Файл Docker отлично работает в другой установке, и существует каталог src, поэтому я не понимаю, почему это не работает здесь?docker-compose nginx тома не смонтированы

Nginx говорит:

nginx_1 | 2015/06/04 09:33:32 [error] 13 # 0: * 1 open() "/var/www/web/index.html" не удалось (2: нет такого файла или каталога), клиент: 172.17 .42.1, сервер: запрос: "GET /index.html HTTP/1.1", хозяин: "локальный: 8085"

дерево:

. 
├── code 
├── docker-compose.yml 
├── logs 
├── nginx 
└── readme.md 

докер-compose.yml

nginx: 
    build: nginx/ 
    volumes: 
     - code/dist:/var/www 
    ports: 
     - 8085:80 

Dockerfile:

FROM ubuntu:14.04 

ENV DEBIAN_FRONTEND noninteractive 

RUN apt-get update && apt-get install -y \ 
    nginx 

RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf 
ADD vhost.conf /etc/nginx/sites-enabled/default 

ADD start.sh /start.sh 
EXPOSE 80 

ENTRYPOINT ["/start.sh"] 

Update

Когда я переименовать Nginx в othernginx в Докер-compose.yml это работает ??
Почему?
Кажется, что это мешает другому контейнеру из другой сборки, делает ли сборщик докеров не разделяющими контейнеры между различными docker-compose.yml?

+0

Можете ли вы добавить результат "ls -l code/dist"? –

+1

Кроме того, почему бы не использовать официальный образ Nginx? –

+0

код/​​dist в основном только index.html. я попытался с официальным изображением, но переключился обратно на контейнер, который работал здесь, только чтобы избежать неправильной конфигурации. – ivoba

ответ

0

Глядя на ошибку, nginx пытается извлечь index.html из /var/www/web/index.html. Однако вы устанавливаете код на var/www. Я полагаю, что контейнер nginx может использовать более раннюю сборку, которая использует каталог /var/www/web/ и изменение имени контейнера принудительно восстановлено. docker-compose up --build должен заставить перестроить.

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