【发布时间】:2019-01-07 05:31:00
【问题描述】:
symfony 缓存和 docker 容器中的日志存在问题。 Web 服务器从 www-data 用户和组执行,当我使用安装在 docker 上的 php 从 docker 容器中清除 symfony 缓存时,它从 root 执行。
因此,例如,如果我删除 var/logs/dev.log 并在浏览器中打开 url,则会使用用户和组创建新的 log.dev:www-data:www-data,但在我清除缓存后,它会得到浏览器中的权限 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
【问题讨论】:
-
拥有您的
docker-compose.yml会有所帮助,例如您是否使用了一些音量? -
我现在没有它,但是是的,它们共享相同的音量