Как удобно выполнять composer / npm / artisan / ... в Docker?
Если до докера это всё делалось в терминале по F12 и вкладке интеграции с node, кликом мышкой по npm команде, то как это удобно делать сейчас?
В PhpStorm есть интеграция с Docker и там по клику на запущенном контейнере, можно сделать exec команды. Делаю exec bash по php и вот там, маленьком и неудобном терминале, могу писать уже composer или artisan. И вот так вот надо работать теперь? Или как-то по другому это всё делается?
Ещё вопрос. Я правильно делаю, что ставлю composer / git в Dockerfile к php? Или нужно отдельный контейнер для композера?
Концепция Докера подразумевает, что ваше ПО там "заморожено" в его состоянии. Сдается мне, что вы пытаетесь его "оживить".
Изменяются только данные (расположенные в Volume, а не внутри контейнера).
yayashitoya, как запускать npm / composer / artisan? Это всё инструменты работы с кодом, а не полноценное серверное ПО, если что.
Контейнер = 1 единица сконфигурированного ПО. Внутри - как бы черный ящик. Все взаимодействие - снаружи.
1. Ну вот контейнер с нодой = 1 контейнер. Но вместе с нодой идет Node Package Manager, который внутри.
2. artisan это часть кода. Находится в volume, а не контейнере. Но чтобы выполнить её, мне нужно запустить "php artisan", а php - внутри php-fpm контейнера.
3. composer - тоже вспомогательный инструмент. По суди это лишь скрипт, который запускается с помощью php, а не процесс какой-то отдельный, требующий отдельного контейнера.
yayashitoya,
так не было ответов. Было только "По канону в докере 1 контейнер = 1 процесс", которое и так я знаю, и которое никак не отвечает на мой вопрос.
Если я правильно понял, вы хотите локально выполнять сборку в контейнере, а затем тестировать работу приложухи с его же помощью.
Путей несколько, разной степени сложности и с разным результатом. Думаю, самым простым для вас будет написать баш-скрипт, в котором прописана вся последовательность вызовов composer и прочего, и положить скрипт внутрь контейнера на этапе сборки. Затем, просто вызывать его через exec в phpstorm по необходимости.