我有以下docker文件
autovideosink
当我构建它并尝试运行一个容器时,它没有问题,但是我无法访问Nginx代理后面的网站,所以我检查了docker日志,发现
FROM grafana/grafana
EXPOSE 8080 8080
COPY config /config
COPY start-nginx-grafana.sh /start-nginx-grafana.sh
USER root
RUN apt-get update && apt-get install -y nginx
RUN chown -R grafana:grafana /etc/nginx/nginx.conf /var/log/nginx /var/lib/nginx /start-nginx-grafana.sh
RUN chmod +x /start-nginx-grafana.sh /etc/nginx/nginx.conf /var/log/nginx /var/lib/nginx
USER grafana
RUN cp /config/nginx.conf /etc/nginx/nginx.conf
ENTRYPOINT [ "/start-nginx-grafana.sh" ]
和我的Nginx配置如下
nginx: [warn] the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1
nginx: [emerg] open() "/var/run/nginx.pid" failed (13: Permission denied)
我该如何修复 nginx:[emerg] open()“ /var/run/nginx.pid”失败(13:权限被拒绝),而我做错了。
答案 0 :(得分:1)
您与用户grafana
警告状态:主nginx
进程不是超级用户。
grafana
用户无权访问文件/var/run/nginx.pid
。
我建议您从USER grafana
中删除Dockerfile
,并使用以下命令在脚本中运行grafana
:
runuser -l grafana -c "...."