首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Fedora 31中,如何设置在Podman容器中运行的nginx的权限?

在Fedora 31中,如何设置在Podman容器中运行的nginx的权限?
EN

Stack Overflow用户
提问于 2020-07-15 14:55:45
回答 1查看 786关注 0票数 2

我正在尝试为一个使用podman-组合的Slim-4项目设置一个本地dev LEMP堆栈。到目前为止,我有用于PHP和Nginx的容器。Nginx运行,但在尝试访问日志目录时出现500错误--权限被拒绝。该目录位于nginx所提供的公共目录之外。

我已经将selinux设置为允许的,以消除其问题。我已经使用podman取消共享来设置容器的Nginx :GID的所有权。我尝试的设置只有一个简单的索引文件-该文件是没有问题的。因此,nginx/podman可以访问主机上的nginx配置文件。问题必须与写权限有关。

这是我的停靠-撰写文件:

代码语言:javascript
复制
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

我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-19 11:44:46

问题是,我错误地假设我需要设置权限以允许Nginx访问。相反,我需要授予组www-数据访问权限。

我是怎么做到的:

登录到正在运行的Nginx容器podman exec -it [container ID] bash

从容器命令行cat /etc/passwd | grep www-data中查找www-data GID (组ID)

注意GID (在结果中,您将看到类似于...x:33:33... 33:33的内容是user:group)

使用exit退出容器cli

在您的开发/主机cli中,在项目的根处运行podman unshare chown -R 0:[the www-data GID you found above] . (不要错过'.')

解释:

podman unshare将您置于与容器匹配的修改后的用户空间中。

chown改变所有权

-R表示递归

“:”左边的数字是UID (用户ID),右边的数字是GID

“.”是当前目录。

我希望这能帮上忙。我花了几个小时学习上面的内容。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62917780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档