首页 > 解决方案 > 更改 nginx 位置后,chown 无法在已安装的目录 docker 上工作

问题描述

我面临一个非常奇怪的问题。自从我调试这个问题以来已经有一个星期了。

所以我有nginx.confas :

    listen       80;
    server_name  localhost;

    location / {     
        root   /usr/share/nginx/html/;
        index  index.html index.htm;
    }

    location ~* ^/server/endpoint$ {
        proxy_pass http://server:5000
    }

}

在将路径更改为如下内容时

    listen       80;
    server_name  localhost;

    location / {     
        root   /usr/share/nginx/html/;
        index  index.html index.htm;
    }

    location ~* ^/server/changed/endpoint$ {
        proxy_pass http://server:5000
    }

}

这不会让chown命令在卷安装目录上工作

/usr/share/nginx/html/

下面是dockerfile启动nginx容器的方法:

FROM nginx:1.19.7-alpine-1

ADD ./nginx.conf /etc/nginx/nginx.conf

ENV USER=user1
ENV GROUP=user1group
ENV UID=100
ENV GID=102
RUN addgroup \
      -S "$GROUP" \
      -g "$GID" && \
    adduser \
      -S "$USER" \
      -G "$GROUP" \
      --uid "$UID"

EXPOSE 80 443
COPY ./build/ /usr/share/nginx/html
COPY ./scripts/run.sh /run.sh

RUN chown -R "$UID":"$GID" /usr/share/nginx/html 
STOPSIGNAL SIGTERM
USER user1
CMD ["/run.sh"]

所以这里chown挂载目录上的命令/usr/share/nginx/html不起作用。

标签: linuxdockershellnginxunix

解决方案


chown安装到 时不起作用root (VOLUME /tmp)。使用非根位置(VOLUME /var/tmp)


推荐阅读