Docker nginx SELinux (centOS/RHEL) 403 禁止访问
Docker nginx SELinux (centOS/RHEL) with 403 forbidden access
所以我的 Docker 文件 运行s 通过 docker-compose 使用:
Docker文件
FROM nginx
#COPY conf
COPY myapp/ /usr/share/nginx/html
RUN chmod -R 664 /usr/share/nginx/html
RUN chown -R nginx /usr/share/nginx/html
RUN chcon -R -t httpd_sys_content_t /usr/share/nginx/html
这是在 RHEL 6.x 上,Docker 也是旧版 1.7 或其他版本。
对于大多数环境,我什至不需要“运行 chmod/chown/chcon”!! docker 文件在 windows.
上工作正常
但是,每当 nginx 尝试访问 /usr/share/nginx/html 中的任何文件时,我仍然会收到 403 Forbidden 错误。
在 docker 容器中设置 nginx 并避免这些 SElinux 问题的正确方法是什么? (SElinux 处于“强制”状态)
事实上,如果你这样做
RUN/CMD ls -l
我们可以看到 nginx 是拥有该文件夹的用户并且它具有正确的权限!那到底是怎么回事?
与旧 Docker 1.7.1 和 RHEL6 有关的特殊情况,意味着您必须安装 RHEL7。 SELinux 不适用于它。有一些核心 RHEL6 库问题(共享库权限错误)使得它几乎不可能与 Docker 1.7.1.
一起使用
标签全错了。图像中的过程是 init_rc_t 类型的标签,这些标签不正确。这些文件可以更改为 httpd_sys_content_t 但它不起作用。
我认为可能还有一些 nginx:nginx(UID GID 不匹配)问题。
但真的,是时候放弃了。不值得花时间解决它,我的主机提供商也不会打电话给 RHEL6 询问。
所以我的 Docker 文件 运行s 通过 docker-compose 使用:
Docker文件
FROM nginx
#COPY conf
COPY myapp/ /usr/share/nginx/html
RUN chmod -R 664 /usr/share/nginx/html
RUN chown -R nginx /usr/share/nginx/html
RUN chcon -R -t httpd_sys_content_t /usr/share/nginx/html
这是在 RHEL 6.x 上,Docker 也是旧版 1.7 或其他版本。
对于大多数环境,我什至不需要“运行 chmod/chown/chcon”!! docker 文件在 windows.
上工作正常但是,每当 nginx 尝试访问 /usr/share/nginx/html 中的任何文件时,我仍然会收到 403 Forbidden 错误。
在 docker 容器中设置 nginx 并避免这些 SElinux 问题的正确方法是什么? (SElinux 处于“强制”状态)
事实上,如果你这样做
RUN/CMD ls -l
我们可以看到 nginx 是拥有该文件夹的用户并且它具有正确的权限!那到底是怎么回事?
与旧 Docker 1.7.1 和 RHEL6 有关的特殊情况,意味着您必须安装 RHEL7。 SELinux 不适用于它。有一些核心 RHEL6 库问题(共享库权限错误)使得它几乎不可能与 Docker 1.7.1.
一起使用标签全错了。图像中的过程是 init_rc_t 类型的标签,这些标签不正确。这些文件可以更改为 httpd_sys_content_t 但它不起作用。
我认为可能还有一些 nginx:nginx(UID GID 不匹配)问题。
但真的,是时候放弃了。不值得花时间解决它,我的主机提供商也不会打电话给 RHEL6 询问。