При использовании стека 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
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.