Добрый день!
Уже несколько дней пытаюсь корректно развернуть php в docker контейнере, но никак не могу решить проблему с записью/редактированием файлов. PHP не может ничего записать. ОС - Ubuntu 22.02.
Мой docker-compose.yml:
version: "3.9"
services:
app:
build:
context: ./
dockerfile: Dockerfile
args:
user: pc
uid: 1000
user: "1000:1000"
image: dkb-landing
container_name: landing-app
restart: unless-stopped
working_dir: /var/www
volumes:
- ./:/var/www:delegated
networks:
- landing
db:
image: mysql:8.0
container_name: landing-db
restart: unless-stopped
environment:
MYSQL_DATABASE: ${DB_DATABASE}
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_USER: ${DB_USERNAME}
SERVICE_TAGS: dev
SERVICE_NAME: mysql
volumes:
- landing-data:/var/lib/mysql
networks:
- landing
nginx:
image: nginx:1.17-alpine
container_name: landing-nginx
restart: unless-stopped
ports:
- "8000:80"
volumes:
- ./:/var/www
- ./docker-compose/nginx:/etc/nginx/conf.d
networks:
- landing
networks:
landing:
driver: bridge
volumes:
landing-data:
driver: local
Dockerfile:
FROM php:8.1-fpm
# Install system dependencies
RUN apt-get update && apt-get install -y \
git \
curl \
libpng-dev \
libonig-dev \
libxml2-dev \
zip \
unzip
# Clear cache
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
# Install PHP extensions
RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd
# Get latest Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
WORKDIR /var/www
Пробовал разные вариации `RUN chown 1000:1000 /var/www`, `RUN chown www-data:www-data /var/www`, `RUN usermod -u 1000 www-data` и т.д. по гайдам из интернета, но ничего не помогло. Как разрешить запись PHP-FPM в монтируемую директорию, при этом сохранив доступ и с хоста?