首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >nginx:[emerg] open() "/run/nginx.pid“失败(13:权限被拒绝)

nginx:[emerg] open() "/run/nginx.pid“失败(13:权限被拒绝)
EN

Stack Overflow用户
提问于 2020-10-17 00:43:38
回答 1查看 2.9K关注 0票数 2

我将下面的Dockerfile设置为使用新用户,而不是为我的nginx服务器使用root。nginx服务器是基于Redhat UBI镜像构建的。镜像构建良好,但是当我运行容器时,我得到以下错误: nginx:[nginx: emerg open() "/ run /nginx.pid“失败(13:权限被拒绝)

下面是我的dockerfile。

代码语言:javascript
运行
复制
USER root
RUN microdnf --setopt=tsflags=nodocs install -y nginx procps shadow-utils net-tools ca-certificates dirmngr gnupg wget vim\
            && microdnf clean all \
            && rpm -q procps-ng

ENV NGINX_USER="api-gatway" \
    NGINXR_UID="8987" \
    NGINX_GROUP="api-gatway" \
    NGINX_GID="8987"     

RUN set -ex; \
  groupadd -r --gid "$NGINX_GID" "$NGINX_GROUP"; \
  useradd -r --uid "$NGINXR_UID" --gid "$NGINX_GID" "$NGINX_USER" 


COPY nginx.conf /etc/nginx/nginx.conf

RUN mkdir -p /var/lib/nginx/tmp /var/log/nginx \
    && chown -R api-gatway:api-gatway /var/lib/nginx /var/log/nginx \
    && chmod -R 755 /var/lib/nginx /var/log/nginx

EXPOSE 1080
USER api-gatway
CMD ["nginx", "-g", "daemon off;"]

当我构建映像时,它构建时没有任何错误,但是当我使用helm在K8集群上部署时,它给出了以下错误。

代码语言:javascript
运行
复制
nginx: [emerg] open() "/run/nginx.pid" failed (13: Permission denied)

这是我设置的nginx.conf文件

代码语言:javascript
运行
复制
worker_processes  1;
error_log  /tmp/error.log;
pid        /run/nginx.pid;

events {
  worker_connections  1024;
}
http {
  server {
    listen 1080;
    server_name localhost 127.0.0.1;
    access_log  /tmp/access.log;
    client_max_body_size 0;
    set  $allowOriginSite *;
    proxy_pass_request_headers on;
    proxy_pass_header Set-Cookie;
    # External settings, do not remove

    #ENV_ACCESS_LOG
    proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
    proxy_redirect off;
    proxy_buffering off;
    proxy_set_header Host            $host;
    proxy_set_header X-Real-IP       $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass_header Set-Cookie;
    proxy_set_header X-Forwarded-Proto $scheme;

    location /search/ {
               proxy_pass http://*******-svc:8983/***/;
    }
    location /auth/ {
      proxy_pass http://********:8080;
    }
    location /mapbox {
      rewrite ^/mapbox(.*)https://****$1 break;
    }
  }
}

如何修复nginx: emerg open() "/var/run/nginx.pid“失败(13:权限被拒绝)以及我的配置做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2020-10-19 19:24:52

更新

为了修复我的"/var/run/nginx.pid“权限被拒绝的错误。

我必须在dockerfile中添加nginx.pid权限错误才能让新用户工作。

下面是我在dockerfile中所做的更改

代码语言:javascript
运行
复制
RUN touch /run/nginx.pid \
 && chown -R api-gatway:api-gatway /run/nginx.pid /cache/nginx
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64393237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档