Docker 突然nginx抛出的权限被拒绝

Docker 突然nginx抛出的权限被拒绝,docker,nginx,Docker,Nginx,我们有一个在docker中运行的nginx(docker image nginx:1.19.2-perl)。原则上,权限是正确的,当我们开始时一切正常,但过了一段时间(可能是几个小时或几天),用户在访问两个文件时突然得到一个禁止403。在nginx日志中,我们看到一个权限错误。这似乎总是发生在相同的两个文件上。但是,这种情况并不总是发生,重新启动后,它会再次正常工作 [error] 16#16: *101701 open() "/usr/share/nginx/html/plugins

我们有一个在docker中运行的nginx(docker image nginx:1.19.2-perl)。原则上,权限是正确的,当我们开始时一切正常,但过了一段时间(可能是几个小时或几天),用户在访问两个文件时突然得到一个禁止403。在nginx日志中,我们看到一个权限错误。这似乎总是发生在相同的两个文件上。但是,这种情况并不总是发生,重新启动后,它会再次正常工作

[error] 16#16: *101701 open() "/usr/share/nginx/html/plugins/jquery.easy-pie-chart/dist/jquery.easypiechart.js" failed (13: Permission denied), client: xxxx, server: xxx, request: "GET /plugins/jquery.easy-pie-chart/dist/jquery.easypiechart.js HTTP/1.1", host: "yyyy", referrer: "http://xxxx/"
[error] 16#16: *101702 open() "/usr/share/nginx/html/plugins/angular-chart.js/dist/angular-chart.js" failed (13: Permission denied), client: xxx, server: yyy, request: "GET /plugins/angular-chart.js/dist/angular-chart.js HTTP/1.1", host: "xxx", referrer: "http://xxx/"
知道会发生什么吗

在更新nxginx(以前的版本nginx:1.12.0-perl)和升级主机操作系统(以前的Ubuntu 16.04.3现在的Ubuntu 16.04.6)之前,我们没有看到这个问题

编辑:
另一个谜团是,如果我们对文件所在的目录进行“ls”,问题就会得到解决,直到错误在几个小时后再次发生

我认为这可能与Dockerfile中缺少某些配置有关。尝试将此添加到Dockerfile:

RUN chgrp -R root /var/cache/nginx /var/run /var/log/nginx && \
    chmod -R 770 /var/cache/nginx /var/run /var/log/nginx

以防我前面的回答不起作用,您可以尝试通过CDN而不是从文件系统加载scrips