Задать вопрос
@Lobanov

Получаю Permission denied при запуске composer из Docker, как исправить?

Привет.

Есть Ubuntu Desktop 20.04 - свежая установка, поставил Docker Desktop для удобства управления контейнерами (хотя уже сомневаюсь в этом, т.к. через консоль все стараюсь делать).

Создал 3 контейнера для проекта:
1. Nginx
2. PHP-FMP
3. PHP-CLI

В Dockerfile PHP-CLI указываю следующее
FROM php:8.2-cli-alpine

RUN mv $PHP_INI_DIR/php.ini-development $PHP_INI_DIR/php.ini

RUN addgroup -g 1000 app && adduser -u 1000 -G app -s /bin/sh -D app

COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer

WORKDIR /app

USER app


Когда происходит установка зависимостей, выпадает ошибка
file_put_contents(./composer.json): Failed to open stream: Permission denied


Права на папку на локальном компе, которую я монтирую в образ 775, когда меняю на 777 все работает норм, composer спокойно запускается из докера и устанавливаются зависимости. Подскажи пожалуйста почему создаваемый юзер в докере не может писать в папку с моим проектом без установления прав 777 на эту папку? Хочу понять этот момент с правами.
  • Вопрос задан
  • 1024 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 2
colonel
@colonel
Разработчик PHP, Laravel
sudo usermod -aG docker ${USER}
И выйти/зайти в систему
Ответ написан
@Lobanov Автор вопроса
Проблема была сугубо в правах каталога, где лежит мой проект, т.е. эту папку я монтирую в Docker. Так как права на папку были 775 соответственно пользователь из Docker используя php-cli не мог писать в эту папку что-либо, если меняем права на 773 (т.е. позволяем остальным юзерам писать в папку и производить запуск файлов) - все начинает работать. Из-за того, что я работаю на локальной машине и кроме меня никого на ней нет, решил выставить права 777 на каталог где лежим мой проект.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы