Docker nginx SELinux(centOS / RHEL),有403个禁止访问

所以我的Dockerfile使用docker-compose运行:

Dockerfile

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! dockerfile在Windows上工作得很好。

但是,每当nginx尝试访问/ usr / share / nginx / html中的ANY文件时,仍然会收到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_ttypes的标签是不正确的。 这些文件可以更改为httpd_sys_content_t,但不起作用。

我想也可能有一些nginx:nginx(UID GID不匹配)问题。

但是,真的,这是放弃时间。 不值得投入时间来解决它,我的主机提供商不会打电话给RHEL6询问这个问题。