Comments 24
django-приложение в Docker на Vagrant под Windows
Яйцо в утке, утка в зайце, заяц в шоке…
Docker работает и под Windows, зачем ещё прослойка? Да и что мешает использовать virtualenv?
+3
Прослойку я использовал для того, что если в процессе что-то пойдет не так, всегда можно начать сначала. Это одна причина. Вторая, в силу параноидального менеджмента, доустанавливать необходимые компоненты на основную систему нельзя без администраторов. Да да, DevOps инжинер без административных прав на своем локальном компьютере. Поэтому все эксперименты я провожу на виртуальных машинах, где нет ограничений.
Почему не virtualenv? В прошлом сталкивался с тем, что редкие пакеты просто отказывались устанавливаться под Windows. И нахожу хорошей практикой всегда запускать приложение в среде, приблеженней к Production.
Почему не virtualenv? В прошлом сталкивался с тем, что редкие пакеты просто отказывались устанавливаться под Windows. И нахожу хорошей практикой всегда запускать приложение в среде, приблеженней к Production.
+3
Да да, DevOps инжинер без административных прав на своем локальном компьютере.
Классика
Так может тогда Docker лишний?
+1
Это была инициатива менеджмента. Они хотят поднять новый стек и использовать Docker. Так как я занимался CI/CD процессом на проекте для прошлого стека, меня назначили и на новый стек. Так что, Docker в моем случае обязательное звено.
+1
Понял вас, спасибо.
0
А так да, забавно получилось. Матрешка.
Правда это еще что. Вон на митапе пару лет назад парень запускал OpenStack в Vagrant, и потом несколько виртуальных машин уже на самом OpenStack. Было забавно наблюдать.
Правда это еще что. Вон на митапе пару лет назад парень запускал OpenStack в Vagrant, и потом несколько виртуальных машин уже на самом OpenStack. Было забавно наблюдать.
+1
несколько виртуальных машин уже на самом OpenStackДля полного счастья надо было ещё внутри докер запустить.
У нас облако на OpenStack, поэтому Vagrant и не используем, зато внутри крутятся gitlab-runner`ы и docker. Так что в принципе мы недалеко от «матрёшки» ушли. Но для локальной разработки используем только tox+virtalenv.
0
На рабочем компьютере менеджментом в виртуальных машинах вам разрешено запускать всё, что угодно, со свободным доступом к корпоративной сети?
+1
когда начинал экспериментировать с Docker, тоже выбрал связку vagrant + docker inside. Вполне себе неплохая песочница для экспериментов. Правда тогда еще не было «нативной» реализации Docker под Windows/macOS. А ставить docker-machine самому было сложнее, чем воспользоваться vagrant.
0
Более того, одно время у нас все проекты содержали в корне Vagrantfile в котором полностью описывалась инфраструктура для запуска проекта (включая БД, queue, nginx, uwsgi и пр.) — каждый проект в своей ВМ, каждый компонент в своём Docker контейнере внутри этой ВМ.
Такой способ позволял легко поднять любой проект на любом хосте, включая компы тестировщиков. А заодно, позволил нам набрать экспертизу использования Docker.
У нас есть даже история, когда мы ездили к нашему заказчику со своим Mac mini, чтобы развернуть у него тестовый стенд. В таком виде он проработал почти до окончания проекта.
Такой способ позволял легко поднять любой проект на любом хосте, включая компы тестировщиков. А заодно, позволил нам набрать экспертизу использования Docker.
У нас есть даже история, когда мы ездили к нашему заказчику со своим Mac mini, чтобы развернуть у него тестовый стенд. В таком виде он проработал почти до окончания проекта.
0
Рассматривался ли вариант с docker-machine вместо vagrant?
+1
У vagrant есть встроенный provisioner docker. И для установки Docker внутри гостевой системы достаточно в Vagrantfile прописать такую строчку:
И в качестве образов для виртуалок лучше подойдут образы из репозитария bento. Пруф.
config.vm.provision "docker"
И в качестве образов для виртуалок лучше подойдут образы из репозитария bento. Пруф.
+1
Это мануал про то как запустить docker в декабре 2017? При чем здесь вагрант, чем запуск отличается например от virtualbox?
+1
Я в свое время очень огромное, с кучей зависимостей, приложение на Django деплоил под Windows через официальную штуку с bash. Согласен, NodeJS, пакеты в виртуальное окружение, PostgreSQL коряво ставятся до версии 1703 (в итоге PostgreSQL стоял отдельно в системе Windows), однако, начиная с нее все деплоиться аналогично любому Linux дистрибутиву. Если этот компонент Windows включен, то по сути права администратора не должны понадобится. Советую попробовать, хотя бы в качестве эксперимента. Минус только один в этом все — скорость работы. Как показывает практика — Docker быстрее работает.
0
… используя ansible :)
Шутка шуткой, но возможно, позволит автоматизировать кое-какие вещи, если ещё не используете средств оркестрации. Мы у себя используем для некоторых тестов и обновления своего ПО на виртуалках.
Шутка шуткой, но возможно, позволит автоматизировать кое-какие вещи, если ещё не используете средств оркестрации. Мы у себя используем для некоторых тестов и обновления своего ПО на виртуалках.
0
Простите за оффтоп, а зачем на радио DevOps? Интерес вполне рабочий, так как сам работаю на радио.
0
В свое время была такая же матрешка, сейчас с bash on windows(win 10) и нативным докером намного проще живется.
0
Sign up to leave a comment.
Запускаем django-приложение в Docker на Vagrant под Windows