Laravel / Docker - Контейнер не может сохранить логи в bind mount - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть настройка docker-compose, которая использует 1 пользовательский образ Docker и 1 образ MySQL.Настраиваемый образ Docker содержит Apache / PHP / Composer / Node и использует монтирование связывания для всего каталога проекта, что позволяет разработчикам использовать перезагрузку живого кода.

Из-за того, как в Docker работают связующие монтированияЯ не могу просто выбрать / chmod каталог для пользователя Apache по умолчанию в моем настраиваемом образе Docker во время сборки, поскольку bind-mount просто вернет права доступа и владельца обратно к настройке хост-машины.

Iподумал об изменении всех прав доступа / владельца на пользователя Apache по умолчанию в проекте хост-машины, чтобы не требовалось изменять образ Docker во время процесса сборки.Однако это означает, что каждому разработчику потребуется настроить пользователя Apache по умолчанию на своем компьютере и добавить свою учетную запись в группу Apache (что не идеально), чтобы они могли вносить изменения в код

I'mне уверен, что я неправильно понимаю, как работает Docker

1 Ответ

0 голосов
/ 30 ноября 2018

Если вы укажете группу с chown -R <current_user>:www-data <project_logs_dir>, она станет группой apache, но пользователь останется владельцем.Если затем вы установите разрешения на 775, то и текущий пользователь, и apache могут делать то, что им нужно, без необходимости добавления текущего пользователя в группу apache.Это также гарантирует, что apache сможет изменять только файлы в директории logs.

Это правда, что разработчик должен сам изменять разрешения, но я считаю, что это хорошо, так как вы остаетесь под контролем и можете определитьгде apache разрешено писать.

Надеюсь, это ответит на ваш вопрос.

...