образе php-8.0 устанавливается composer.
Когда мы запускаем контейнер логично что все зависимости composer'a уже должны быть установлены. Соответственно при запуске контейнера нужно выполнить "composer install".
Но автор статьи говорит что "composer install" нужно выполнять войдя в запущенный контейнер (docker exec -it php-8.0 bash).
Я пытался в dockerfile написать команду "RUN composer install". Это не сработало. Composer ругался на отсутствие composer.json файла. Его не было потому что volumes еще не смонтированы в контейнер.
Кто мне может объяснить - если я буду разворачивать образы на проде, мне всегда вручную нужно будет заходить в контейнер и выполнять "composer install"? Это же бред. Но я не понимаю как это должно правильно работать.
Надеюсь на вашу помощь.
как я понимаю в контейнере должен находиться только php не проект по этому проект у меня находиться в local и когда я уже нужные пакеты установил просто делаю docker-compose up —build -d он его перестроит во всех контейнерах который он создал (исправьте если где то ошибка)
а без докера как на продакшн зависимости устанавливаются?
Это статья не для прода, а для локальной разработке в докере. На проде нужно копировать composer.json и исходники в образ, и устанавливать зависимости, а при запуске контейнера должно лишь стартовать твое приложение
Обсуждают сегодня