Permissions 在Fedora31中,如何设置在Podman容器中运行的nginx的权限?

Permissions 在Fedora31中,如何设置在Podman容器中运行的nginx的权限?,permissions,fedora,selinux,podman,slim-4,Permissions,Fedora,Selinux,Podman,Slim 4,我正在尝试使用podman compose为Slim-4项目建立一个本地开发LEMP堆栈。到目前为止,我已经有了PHP和Nginx的容器。Nginx运行,但在尝试访问日志目录时出现500错误-权限被拒绝。此目录位于nginx提供服务的公共目录之外 我已将selinux设置为permissive以消除其问题。 我已经使用podman unshare设置容器的Nginx UID:GID的所有权。 我只使用了一个简单的索引文件就尝试了这个设置-该文件没有任何问题。因此,nginx/podman可以访问

我正在尝试使用podman compose为Slim-4项目建立一个本地开发LEMP堆栈。到目前为止,我已经有了PHP和Nginx的容器。Nginx运行,但在尝试访问日志目录时出现500错误-权限被拒绝。此目录位于nginx提供服务的公共目录之外

我已将selinux设置为permissive以消除其问题。 我已经使用podman unshare设置容器的Nginx UID:GID的所有权。 我只使用了一个简单的索引文件就尝试了这个设置-该文件没有任何问题。因此,nginx/podman可以访问主机上的nginx配置文件。该问题必须具有写入权限

这是我的docker撰写文件:

version: '3.7'

# Services
services:

# Nginx Service
nginx:
  image: nginx:1.17
  ports:
    - 8090:80
  volumes:
    - .:/var/www/php:z
    - ./.docker/nginx/conf.d:/etc/nginx/conf.d:ro
  depends_on:
    - php

# PHP Service
php:
  image: php:7.4-fpm
  working_dir: /var/www/php
  volumes:
    - .:/var/www/php

我缺少什么?

问题是我错误地认为我需要设置权限以允许Nginx访问。 相反,我需要授予组www数据访问权限
我是如何做到的:
登录正在运行的Nginx容器
podman exec-it[container ID]bash

从容器命令行,
cat/etc/passwd| grep www-data

注意GID(在结果中,您将看到类似于
…x:33:33…
33:33是用户:组的内容)
使用
exit

在开发/host cli中,在项目的根目录下,运行
podman unshare chown-R 0:[上面找到的www-data-GID](不要错过“.”)

说明:
podman unshare
将您置于与容器匹配的修改用户空间中
chown
更改所有权
-R
表示递归
“:”左边的数字是UID(用户ID),右边的数字是GID
“.”是当前目录

我希望这对某人有帮助。我花了数小时学习上述内容。

这对我很有帮助。Tnx。相反,
podman unshare chown-R 0:33。
我必须使用
podman unshare chown-R 33:33。
让Nginx处理
上传
目录。