Как правильно настроить права в Docker?

В целях изучения пытаюсь развернуть Laravel в Docker, но после команды

docker compose run composer create-project laravel/laravel .


Папки и файлы Laravel в хосте (в папке src) создаются под root. Просьба объяснить, как правильно решить эту проблему.

docker-compose.yml;
services:
  nginx:
    image: nginx:stable-alpine
    ports:
      - 8000:80
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro
      - ./src:/var/www/laravel
    depends_on:
      - mysql
      - php

  php:
    build:
      context: dockerfiles
      dockerfile: php.Dockerfile
    volumes:
      - ./src:/var/www/laravel

  mysql:
    image: mysql:8.0
    ports:
      - 3316:3306
    env_file:
      - env/mysql.env

  composer:
    build:
      context: dockerfiles
      dockerfile: composer.Dockerfile
    volumes:
      - ./src:/var/www/laravel


composer.Dockerfile:
FROM composer:latest

WORKDIR /var/www/laravel

ENTRYPOINT ["composer", "--ignore-platform-reqs"]


php.Dockerfile:
FROM php:8.2-fpm-alpine

WORKDIR /var/www/laravel

RUN docker-php-ext-install pdo pdo_mysql
  • Вопрос задан
  • 490 просмотров
Решения вопроса 1
grantur5707
@grantur5707
Full Stack Web Developer
Укажите запуск команды композера от имени текущего пользователя на хосте:
docker compose run --user $(id -u):$(id -g) composer create-project laravel/laravel .


Вы также можете задать пользователя по умолчанию в composer.Dockerfile:
FROM composer:latest

WORKDIR /var/www/laravel

RUN adduser -D -u USER www-data
USER www-data

ENTRYPOINT ["composer", "--ignore-platform-reqs"]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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