Как вы разрабатываете в Docker?

Всем привет. Я разрабатываю уже долго django + vuejs в Docker + docker-componse И чувствую, что есть какой-то лаконичный способ упростить текущую схему.

Сейчас схема такая:
1. Контейнер с джангой на базе python:alpine. В нём две папки: /app и /app_autobuild. В /app_autobuild попадают файлы при билде образа. В /app композом синхронизируются файлы с локальной машины и в env прокидывается переменная, которая запускает gunicorn в папке /app на локальной машине и /app_autobuild на проде. Чувствуется, что можно как-то хитро сделать, чтобы не было дублирования папок.

2. Есть контейнер с фронтендом и nginx, multi-stage build. Сперва билдится статика из vue приложения в контейнере с нодой, затем создаётся образ из nginx:alpine, куда копируется из предыдущего образа результат билда фронта (dist) и это всё раздаётся вместе с проксированием в джангу.

3. Есть контейнер (который, как мне кажется, можно ликвидировать) с нодой, он только для dev-окружения, куда синкается локальный dist и оттуда раздаётся джангой. (Да, на дев-окружении всю статику раздаёт джанга)

Вопрос следующий: как вы устраиваете контейнеры, чтобы это было удобно и для разработки и для прода? Возможно, стоит использовать два Dockerfile'а для джанги + два для фронта: одна пара для dev-окружения, одна для прода? Возможно, конфиг docker-compose позволяет подключать папки в зависимости от env-переменных? Хочется узнать какие-то лучшие практики для всего этого.
  • Вопрос задан
  • 677 просмотров
Пригласить эксперта
Ответы на вопрос 1
@m0nym
Докер-Компоуз не для прода, так то.
Более подходящие инструменты, где все проблемы ваши уже решены - Flynn или, посложнее, Kubernetes.
И да, Докер внутри них там есть.
Впрочем, не обязательно переходить в Компоуза, достаточно посмотреть идеологию выше описанных.
Ответ написан
Ваш ответ на вопрос

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

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