我正试图在Openshift
上运行Nginx
,但遇到此目录权限问题。由于此错误,容器未创建。以下权限设置为手动创建的文件。
drwxr-xr-x. 3 root root 79 Dec 22 02:50 /etc/nginx
drwxr-xr-x. 2 root root 26 Dec 22 02:50 /etc/nginx/conf.d
-rw-r--r--. 1 root root 5231 Dec 22 02:48 /etc/nginx/mime.types
drwxrwxr-x. 3 root root 25 Dec 22 01:23 /var/cache/nginx
drwxrwxr-x. 2 root root 6 Dec 22 01:10 /var/log/nginx
drwxrwxr-x. 47 root root 1340 Dec 21 06:51 /var/run
您要运行哪个特定的容器映像?如果你用这个——https://catalog.redhat.com/software/containers/ubi8/nginx-120/6156abfac739c0a4123a86fd--开箱即用的OpenShift会玩得更好。
这种问题几乎总是由OpenShift默认情况下以非root身份运行容器引起的。如果将文件权限更改为允许对GROUP=0进行写访问,则几乎可以解决所有这些问题。
就像@dbaker提到的那样,RedHat作为一家安全公司,他们在openshift中做出的关于安全性的决定可能会更严肃或更激进,比如默认情况下使用随机UID运行容器。您可以通过为不同的Nginx用途重新分配路径来解决这个问题。
更改PID位置:
pid /tmp/nginx.pid;
更改客户端临时位置(您的问题(:
client_body_temp_path /tmp/nginx/client_temp
以及以类似方式的任何其他路径。
除了RedHat在另一个答案中指定的图像之外,您还可以使用dockerhub中的无特权nginx图像作为认证图像,这些图像应该能更好地与面向安全的RedHat产品配合使用。由于另一张图片将被弃用,我将包括RedHat rhscl/nginix-120-rhel7 推荐的另一个标签