разработал для себя небольшой докер компоуз для работы с ларавел в докер окружении
вот его содержимое
version: '3'
networks:
laravel:
services:
nginx:
image: nginx:stable-alpine
container_name: nginx
depends_on:
- php
- mysql
ports:
- "80:80"
volumes:
- ./src:/var/www/html
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
networks:
- laravel
mysql:
image: mysql:5.7
container_name: mysql
tty: true
ports:
- "4306:3306"
volumes:
- ./mysql:/var/lib/mysql
environment:
- MYSQL_DATABASE=laravel
- MYSQL_ROOT_PASSWORD=root
networks:
- laravel
php:
build: ./php
container_name: php
volumes:
- ./src:/var/www/html
ports:
- "9000:9000"
networks:
- laravel
но при работе есть ряд проблемc с правами на файлы и директории, например
The stream or file "/var/www/html/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied
Погуглил в основном все предлагают поставить на папку права 777 но это же огромная дыра в безопасности ? Как ее можно решить ?
и 2е кокда захожу в контейнер с php, то получается текущий пользователь root если я создаю миграции или контролер то потом не могу модифицировать эти файлы на хост машине тк созданые файлы получается создаются под рутом как быть в этом случаи ?