docker - 在 docker 中使用 nginx 时出现禁止错误

标签 docker nginx docker-compose

我的 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"

所以当我检查目录权限时,结果是错误的。

enter image description here

检查 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/

相关文章:

wordpress - WordPress Docker镜像错误-拒绝连接-在插件详细信息预览期间

linux - 将数据从主机管道传输到 docker 容器命令不适用于 docker 机器

docker - 在 pods 创建时设置环境变量的最佳方法是什么?

javascript - 在 nginx 反向代理上使用 mithril.js 执行一些请求

docker - 从主机访问 Docker 服务

docker - 在 Docker 中的 .Net Core 2.0 上运行 IdentityServer4 - 访问主机资源

python - 如何在 docker 容器中打开 jupyter nookbooks?

mysql - Docker MySQL : Communication link failure

python - X-Forwarded-Proto 和 Flask

wordpress - 特定路径和某些文件类型的 Nginx 位置 block