При использовании стека PHP+DOCKER (+ все остальное) на Linux-системах у вас, скорее всего, возникнут проблемы с правами в контейнере. Нельзя будет записать какой-либо файл в директорию, начнут вылетать ошибки при сохранении логов и всё в таком духе. При использовании фреймворков, например, такого как Laravel, эта проблема уже решена его разработчиком, а во всех других случаях решать коллизию с правами нужно своими руками. Ниже приведён один из простых вариантов решения.
php-fpm: build: context: ./docker/php volumes: - ./:/app working_dir: /app environment: - PHP_USER_ID=${PHP_USER_ID:-500} - PHP_GROUP_ID=${PHP_GROUP_ID:-500}
В блоке выше фрагмент docker-compose.yml, где вам нужно указать вместо «500» своё значение. Чтобы узнать чему оно равно у вас, запустите консоль и введите «id» и вам выведется идентификатор пользователя (uid) и идентификатор группы (gid). Они-то вам и нужны.
Осталось только внести правки в Dockerfile, чтобы использовать указанные ранее «uid» и «gid»:
FROM php:8.2-fpm ARG PHP_USER_ID=500 ARG PHP_GROUP_ID=500 # Установка желаемых модулей. RUN groupadd -g $PHP_GROUP_ID appgroup \ && useradd -u $PHP_USER_ID -g appgroup -m appuser USER appuser
После внесения правок пересоберите и запустите контейнер:
docker-compose up --build -d
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.