gpt4 book ai didi

symfony - Symfony 3的Docker权限

转载 作者:行者123 更新时间:2023-12-02 20:03:49 25 4
gpt4 key购买 nike

symfony缓存和登录Docker容器存在问题。
Web服务器从www-data用户和组执行,当我使用docker上安装的php从docker容器中清除symfony缓存时,它从root执行。

因此,例如,如果我删除var / logs / dev.log并在浏览器中打开url,则会使用用户和组www-data:www-data创建新的log.dev,但是在清除缓存后,它将获得root权限:浏览器中的root和url给出错误dev.log权限被拒绝。

我不确定是什么问题,但是我想nginx会以某种方式在www-data下运行,而当我执行控制台命令时,它们是从root用户运行的。

我有4个容器:nginx,php-fpm,mysql,rabbit。

我也使用了docker compose的第3版,我想到了group_add的解决方案,但在第3版中不再可用

我该如何配置?

=================

docker-compose与此类似:

version: "3"

services:
nginx:
image: nginx:1.11
depends_on:
- php-fpm
links:
- php-fpm
environment:
- NGINX_PORT=80
- FASTCGI_HOST=php
- FASTCGI_PORT=9000
- DOCUMENT_ROOT=/usr/local/src/test-project/public
ports:
- 8095:80
volumes:
- .:/usr/local/src/test-project
- ./docker/nginx/templates/default.conf.template:/etc/nginx/conf.d/default.conf.template
- ./docker/nginx/entrypoint.sh:/entrypoint.sh
command: "/bin/bash /entrypoint.sh"

php-fpm:
build: docker/php
depends_on:
- db
extra_hosts:
- "test-project:127.0.0.1"
environment:
DATABASE_URL: pgsql://test-project_users:test-project_users@db:5432/test-project_users
APP_URL: 172.19.0.1:8095/
working_dir: /usr/local/src/test-project
volumes:
- .:/usr/local/src/test-project

db:
image: postgres
restart: always
ports:
- '5599:5432'
environment:
POSTGRES_DB: test-project_users
POSTGRES_USER: test-project_users
POSTGRES_PASSWORD: test-project_users
volumes:
- data:/var/lib/db

最佳答案

问题是,您要通过命令行以root用户身份清除缓存。您应该使用su www-data运行clear语句。

关于symfony - Symfony 3的Docker权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51602873/

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