linux - 更改 nginx 位置后,chown 无法在已安装的目录 docker 上工作
问题描述
我面临一个非常奇怪的问题。自从我调试这个问题以来已经有一个星期了。
所以我有nginx.conf
as :
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
不起作用。
解决方案
chown
安装到 时不起作用root (VOLUME /tmp)
。使用非根位置(VOLUME /var/tmp)
。
推荐阅读
- r - 通过用户定义的函数格式化多个弹性表列
- .net-core - SonarQube 忽略 dotnet 覆盖
- extjs - 无头浏览器中的 Ext JS 网格
- java - 需要使用 java 8 在一个复杂对象中获取字符串(可选
) - anaconda - 更新到 macOS Catalina 后授予对 JupyterLab 的完全访问权限
- java - 如何将 Apollo-android 合并到具有多个模块的项目中?
- nginx - /etc/nginx/nginx.conf 中的未知指令“init_by_lua_block”
- python - 无法检查 CSRF 令牌。请再试一次
- excel - ODBC Excel 读取速度低
- google-maps-api-3 - 是否可以从 Google Maps Distance Matrix API 检索不到 1 秒的持续时间?