Задать вопрос
sokolnikov
@sokolnikov

Как правильно использовать docker на этапе разработки?

Значит так. Как использовать докер для деплоя на продакшн я научился.
При деплое у меня на основе заранее подготовленного базового образа собирается рабочий образ, при сборке в образ стягиваются свежие исходники моего приложения с репозитория, настраивается окружение так как мне надо. Ну и потом на основе этого образа стартуется контейнер.

Но вот возник вопрос, как использовать докер (чтобы иметь точно такое же рабочее окружение) на этапе разработки? Пишу на PHP.
И получается совсем неудобно:
- написать несколько строк кода;
- закоммитить;
- запушить в репозиторий;
- пересобрать новый образ;
- запустить заново контейнер;
- проверить работу.

Потом дописать еще пару строк, и всё по-новой?
Или есть более логичные решения? Кто как использует? Если используете директиву VOLUME, то расскажите пожалуйста о своем примере использования.
  • Вопрос задан
  • 608 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
sokolnikov
@sokolnikov Автор вопроса
В общем решил следующим образом:
- используется некоторый базовый образ, с основными настройками окружения;
- на основе базового образа создаются два образа - dev и production. Отличие в том, что в production все данные хранятся внутри образа, в то время, как в dev образе используется внешняя директория с данными (ключ -v для run).

В production образе все манипуляции с данными происходят внутри образа, а для dev написал отдельный bash скрипт для загрузки и первичной настройки данных.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
serieznyi
@serieznyi
Backend Developer
В нашей компании мы только начинаем переводить наши проекты на docker архитектуру, но в процессе разработки уже достаточно долго используем docker. В частности используем docker-compose для более удобного управления контейнерами. Исходники проекта пробрасываются в php и nginx контейнеры с помощью volumes.
Выходить что-то вроде вот этого
Т.к. новая архитектура разработки только осваивается, то в плане тестирования и интеграции пока ничего нет.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы