Здравствуйте
на ноутбуке (macos) лежит код проекта (чистый laravel)
рядом с кодом проекта лежат
- docker-compose.yml
- mutagen.yml
Работа строится так
1) Мутаген настроен на сихронизацию папки с проектом и vps
на самом впс установлен docker (compose)
2) Перехожу в папку с проектом и запускаю mutagen, файлы тут же появляются на vps и у этих файлов пользователь тот, которым я подключаюсь на vps (id 1000)
вот пример первая строка этой мой пользователь, вторая рандомный файл проекта
uid=1000(pankov) gid=1000(pankov) groups=1000(pankov),27(sudo),998(docker)
-rw-rw-r-- 1 pankov pankov 569 Feb 20 11:38 server.php
3) итак, имею vps и файлы проекта, запускаю на vps docker-compose build... внутри которого файлы маунтятся (прокидываются) в нужные контейнеры (с nginx, php), докер стартует
4) вот тут первая проблема, так как контейнеры не знаю про меня (моего пользователя), при переходе по url проекта я вижу ошибку
The stream or file "/application/storage/logs/laravel.log" could not be opened in append mode: Failed to open stream: Permission denied
5) при этом если я правлю в ide свои файлы то они моментально оказываются на vps и контейнер видит эти изменения и пытается запустить уже новый код, тут все как надо
6) нагуглил, что нужно файлам поставить пользователя www-data, окей, ставлю на vps(хост машине), соответственно внутри докера так же эти файлы с владельцем и группой www-data
7) пробую постучаться на порт nginx (открыть сайт) - ошибка пропала - сайт работает
8) но тут новая проблема, отвалился mutagen при синхронизации файла ошибку выдает, что ему не хватает прав, вроде логично да, например, я правлю index.php у себя, mutagen старается его изменить на vps, а на vps уже владелец этого файла не я (pankov), а www-data
Заблудился в 3ех соснах, подскажите почему так и как исправить?
Таким образом, я копирую на vps (через mutagen) файлы проекта, владелец файлов становится пользователь, через которого осуществляется ssh соединение (pankov), докер (его контейнеры) ничего не знают о владельце и сыпется ошибка прав, ставлю владельца файлов проекта на www-data (откуда вообще у меня этот www-data?), код выполняется и логи пишутся, но теперь ошибка прав сыпется от mutagen
те мне нужно:
или файлы копировать через mutagen с нужным владельцем и группой сразу?
тогда как мне потом и чреез ssh\ftp ковырять
или при монтировании файлов в контейнер назначать им нужного владельца и группу?
или внутри контейнеров создавать копию моего пользователя и делать так чтобы nginx и php были в одной группе с моим пользователем?
Какой вариант правильный и есть ли он вообще? (я понимаю, что в плаванию в теории о том как работают права в linux, даже без доекра)
вообще ноут слабенький и занимаюсь remote development, чтобы база и php шелестели где-то не у меня, а я (ноут) , был тонкий клиент по обновлению кодовой базы