Как настроить Docker для того, чтобы composer автоматически создавал папку vendor при установке зависимостей?

Как исправить проблему с отсутствием создания папки vendor при выполнении команды `composer install` через Docker в проекте веб-приложения, которое работает со сторонним API?
  • 7 июня 2024 г. 15:01
Ответы на вопрос 2
Чтобы настроить Docker для автоматического создания папки vendor при установке зависимостей через composer, вам необходимо внести некоторые изменения в ваш Dockerfile и docker-compose.yml файлы. 

1. В Dockerfile добавьте следующие строки после установки composer:
```
RUN chown -R www-data:www-data /var/www/html
USER www-data
RUN composer install
USER root
```

2. В docker-compose.yml добавьте параметр working_dir к вашему сервису PHP:
```
services:
  php:
    build:
      context: .
      dockerfile: Dockerfile
    working_dir: /var/www/html
```

Эти изменения позволят Docker автоматически создавать папку vendor при установке зависимостей через composer.

Если у вас все еще возникает проблема с отсутствием создания папки vendor при выполнении команды composer install через Docker, убедитесь, что правильно указан путь для установки зависимостей в composer.json файле. Например, если указано, что зависимости должны быть установлены в папку vendor, то composer должен автоматически создать эту папку после выполнения команды composer install.

Также убедитесь, что у вас есть достаточные права на запись в папку, в которой выполняется установка зависимостей. Вы можете применить команду chown для изменения владельца папки в Dockerfile, как показано выше.
volumes:
- .:/var/www/html/git


Этой командой ты перетираеш содержимое /var/www/html/git. Это ужастная практика телать именно вот так "- .:/" без указания каталога источника.
Похожие вопросы