我的 Docker 文件内容是
FROM nginx
COPY /src /usr/share/nginx/html
我的 docker compose 文件内容是
version: '2'
services:
app:
build: .
image: app:1.0.0
volumes:
- ./src:/usr/share/nginx/html
ports:
- "8080:80"
运行 docker-compose 时出现以下错误
*1 directory index of "/usr/share/nginx/html/" is forbidden
我尝试授予目录权限 ->/usr/share/nginx/html 它不起作用。
我想将主机目录与 docker 容器同步。
最佳答案
我遇到了同样的问题,因此发布答案可能会帮助其他人或其他寻找相同问题的人
我正在运行 nginx 官方镜像。
docker run --rm --name some-nginx -p 8080:80 -v /test/html5-youtube.js/examples/:/usr/share/nginx/html -it nginx
我收到此错误。
[error] 8#8: *3 directory index of "/usr/share/nginx/html/" is *forbidden*, client: 172.17.0.1, server: localhost, request: "GET / HTTP/1.1", host: "localhost:8080"
所以当我检查目录权限时,结果是错误的。
检查 nginx.conf 中的用户,在我的例子中是 nginx,因此更改文件权限。
cd /usr/share/nginx/html
chown nginx:nginx ./*
然后我就能够从服务器获得响应。
172.17.0.1 - - [30/Oct/2018:09:04:52 +0000] "GET /html5-youtube.js HTTP/1.1" 404 571 "http://localhost:8080/player.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36" "-"
更新:
或者如果您不使用绑定(bind)卷,则在构建时添加权限。
RUN chown nginx:nginx /usr/share/nginx/html/*
关于docker - 在 docker 中使用 nginx 时出现禁止错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49254476/