我的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之间分隔容器吗?
答案 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
一切都应该没问题。