azovl
@azovl

Yii2 (Docker, Nginx, phpfpm) “failed to open stream: Permission denied”?

Ошибка:
PHP Warning – yii\base\ErrorException copy(/usr/share/nginx/html/web/assets/ce44384e/js/npm.js): failed to open stream: Permission denied


Что я имею:
Docker version 17.10.0-ce, build f4ffd25
docker-compose version 1.16.1, build 6d1ac21
docker-machine version 0.13.0, build 9ba6da9

Рабочая машина на базе MacOS.

4 контейнера:
tutum/nginx
mariadb
php:fpm
phpmyadmin

Yii2 volume в phpfpm.

MacOS - 'web/assets', 'runtime' папки имеют 777 (myUserName:wheel)

Контейнер phpfpm - 'web/assets', runtime папки имеют 777 (1000:staff)

Контейнер nginx - все файлы внутри принадлежат 'root'.

Когда я вывожу phpinfo(), имею эти значения:
Configure commangs:
'--with-fpm-user=www-data' '--with-fpm-group=www-data'
 $_ENV['USER'], $_SERVER['USER']    www-data


Для запуска всей "системы" использую docker-compose up.

Вопрос:
Как я могу исправить ситуацию с доступом на чтение и запись файлов используя контейнеры?

Задавал этот вопрос на многих форумах но так и не смог получить ответы... Такое количество людей пользуется Yii2 и контейнерами и неужели никто не сталкивался с такой ситуацией (проблемой разных permissions)... Возможно в конфигурационном файле можно каким то образом определить каким пользователем запускать процессы?! Одним словом, насколько я правильно понял, контейнеры не имеют доступа для чтения и записи с MacOS. Поправьте меня если ошибаюсь, заранее спасибо!
  • Вопрос задан
  • 1716 просмотров
Пригласить эксперта
Ответы на вопрос 1
planc
@planc

Контейнер phpfpm - 'web/assets', runtime папки имеют 777 (1000:staff)


chmod -R 777 web/assets

либо сhown -R www-data:www-data web/assets

у тебя на файлах владелец с uid 1000, а у www-data (под ним работает php-fpm) uid 33

еще можно пересобрать php:fpm что-то типа(слишком сложно для 1го января)
FROM php:fpm
RUN useradd добавляем юзера с uid 100 && \
меняем в конфиге юзера
EXPOSE 9000
CMD ["php-fpm"]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы