docker-compose nginx卷未安装

时间:2015-06-04 10:09:29

标签: nginx docker docker-compose

我的docker-compose.yml只包含nginx,但是在运行它时,在nginx容器中找不到卷。 Dockerfile在另一个设置中正常工作,并且src目录存在,所以我不明白为什么这在这里不起作用?

Nginx说:

  

nginx_1 | 2015/06/04 09:33:32 [错误] 13#0:* 1打开()   “/var/www/web/index.html”失败(2:没有这样的文件或目录),   客户端:172.17.42.1,server :, request:“GET /index.html HTTP / 1.1”,   主持人:“localhost:8085”

树:

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

docker-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"]

更新

当我在docker-compose.yml中将nginx重命名为othernginx时,它有效吗? 那是为什么?
似乎它干扰了另一个构建中的其他容器,docker-compose不能在不同的docker-compose.yml之间分隔容器吗?

2 个答案:

答案 0 :(得分:0)

查看错误,nginx正在尝试从/var/www/web/index.html获取index.html。但是,您将代码安装到var/www。我认为容器nginx可能正在使用使用/var/www/web/目录的早期版本,并且更改容器名称会强制重建。 docker-compose up --build应该强制重建。

答案 1 :(得分:0)

问题在于您的行

- code/dist:/var/www

如果您将其更改为

- ./code/dist:/var/www

一切都应该没问题。