gpt4 book ai didi

Docker NGINX - PHP-FPM 跨容器权限?

转载 作者:行者123 更新时间:2023-12-02 18:02:22 28 4
gpt4 key购买 nike

我正在设置一个 wordpress 堆栈并具有跨文件权限。

使用 docker-compose up 时权限似乎不是问题,但是在使用本地 docker swarm 和使用 docker stack deploy 时,nginx给了我一个403文件权限错误。检查 nginx:alpine 时容器和 wordpress:php7.1-fpm-alpine容器,我确实看到每个容器都有不同的权限,在 nginx 端它标记了 var/www/html 中的文件由用户和组 ID 82 拥有而在 php7.1 上,它们归 www-data 所有.

如何确保跨容器的权限正确?这些文件正在从主机绑定(bind)安装。

```

version: '3'
services:
nginx:
depends_on:
- wordpress
image: private/nginx
build:
context: ./stack/nginx
volumes:
- "wordpress:/var/www/html"
ports:
- 80:80
wordpress:
depends_on:
- mysql
image: private/wordpress
build:
context: ./stack/wordpress
volumes:
- "wordpress:/var/www/html"
environment:
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: password
mysql:
image: mariadb
volumes:
- "mysql:/var/lib/mysql"
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: password
volumes:
wordpress:
driver: local
driver_opts:
type: none
o: bind
device: "${PWD}/wordpress"
mysql:

```

最佳答案

对于遇到此问题且没有解决方案的其他任何人,
这就是我处理这种情况的方式。

我在 dockerfile 中添加了以下内容,它创建了一个新的 www-data具有相同 id 的组和用户作为 id用于 www-data用户 82 &群82php-fpm图片。

RUN set -x ; \
addgroup -g 82 -S www-data ; \
adduser -u 82 -D -S -G www-data www-data && exit 0 ; exit 1

到我的 nginx docker 文件。

在我的 nginx.conf我将 nginx worker 用户设置为新创建的 ww-data 用户。
user www-data;

关于Docker NGINX - PHP-FPM 跨容器权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48661327/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com