@topuserman

Контейнеризация для локальной разработки?

Всем привет, мы разрабатываем интернет-магазин. Работаем по классической схеме, имеем dev и production, всю разработку ведем локально.

Проблема в следующем: проект достаточно большой, постоянно появляются новые разработчики, и каждому нужно объяснять, что надо надо ставить себе OpenServer, выбирать нужную конфигурацию, кучу настроек и т.д.

Естественно я написал инструкцию, но понимаю, что так продолжаться не может, т.к. каждый новый разработчик, тратит пару дней, на настройки окружения.

Нам нравится работать на OpenServer, т.к. файловая структура проекта доступна прямо у нас на нашем рабочем компьютере, и любая IDE может без проблем открыть проект.

Начал читать про docker, понимаю, что это то, что нам необходимо.

Но возникает много вопрос, на которые не могу найти ответы:

Правильно понимаю, что docker можно также спокойно использовать локально на windows ? Как вы локально разворачиваете докер ?

При разворачивании проекта через docker, создается некая виртуализация. Как тогда работать с проектом через IDE ? Если все окружение проекта на linux, а мы работаем на windows, как вообще люди работают через IDE в таких случаях ?
  • Вопрос задан
  • 437 просмотров
Пригласить эксперта
Ответы на вопрос 6
@Arik
Правильно понимаю, что docker можно также спокойно использовать локально на windows ? Как вы локально разворачиваете докер ?

можно, но вроде на винде, как и на маке, очень тормознуто все, приходится юзать docker-sync.io

При разворачивании проекта через docker, создается некая виртуализация. Как тогда работать с проектом через IDE ? Если все окружение проекта на linux, а мы работаем на windows, как вообще люди работают через IDE в таких случаях ?

Вернее будет не просто "на linux", а на разных linux, т.е. БД у себя, web-сервер у себя и т.д.

Нужно курить доку в разделе монтирования, если вкрации, то все файлы лежат в основной системе (где и IDE естественно), а папку с проектом монтируем в нужные контейнеры, где веб-сервер, бд и т.д. уже знают что делать с этими файлами
Ответ написан
Комментировать
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
Правильно понимаю, что docker можно также спокойно использовать локально на windows ?

Да. Но есть свои ньюансы. В среде Unix-систем работать с докером гораздо проще.

Как вы локально разворачиваете докер ?

через docker-compose:
docker-compose up -d

При разворачивании проекта через docker, создается некая виртуализация. Как тогда работать с проектом через IDE ?

Да все так же - ваша папка с проектом мапится в контейнер, а вы спокойно открываете у себя в IDE.
Единственно - с отлаживанием проекта в IDE могут возникнуть проблемы.
Ответ написан
@vldud
Правильно понимаю, что docker можно также спокойно использовать локально на windows ?
- правильно
Как вы локально разворачиваете докер ?
- https://docs.docker.com/docker-for-windows/install/
Как тогда работать с проектом через IDE ?
- если речь идет о php, то в PhpStorm интеграция реализована и описана прекрасно
Если все окружение проекта на linux, а мы работаем на windows, как вообще люди работают через IDE в таких случаях ?
- вот вы и поднимете свое linux окружение в docker-контейнере
Ответ написан
Комментировать
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
так продолжаться не может, т.к. каждый новый разработчик, тратит пару дней, на настройки окружения.

Им еще и внезапно! ознакомиться с кодом надо перед работой.
А вы хотите что он первую задачу решил через час после устройства на работу?

А так если настолько часто меняются разработчики и никто из них не может без инструкции завести проект, то проблема-то не во времени настройки проекта. У вас какой-то джуно-конвеер видимо и проект который завести это что-то нетривиальное.

нужно объяснять, что надо надо ставить себе OpenServer, выбирать нужную конфигурацию, кучу настроек и т.д.

нужно сделать проект таким чтобы его можно было запустить в принципе без проблем.
А не запустить с определенными конфигами на определенном софте.
Не говоря уже про тех кто сидит на линуксе или макоси. Их вы не берете на работу?)

Я на локалке использую свой набор софта для всех проектов и все разработчики работают как привыкли.

А докер вообще мимо разработки, там держу только базы на локалке.
При обычной разработке неудобно + вечные косяки со скоростью диска в докере на маке/винде или еще чего-нибудь.
В общем дичайше неудобно.
Ответ написан
Комментировать
Правильно понимаю, что docker можно также спокойно использовать локально на windows?
Правильно.

Как вы локально разворачиваете докер ?
Под Mac или Windows cкачать Docker Desktop.
Разворачивать проект – так же как заворачивали ) Скорее всего клонировать репку с файлом docker-compose.yml вашего проекта и docker-compose up А потом заходить внутрь контейнеров, или запускать дополнительные временные – со всякими git clone, composer install, npm i, mysql -p${MYSQL_ROOT_PASSWORD} < database_init.sql и пр.

При разворачивании проекта через docker, создается некая виртуализация.
Не совсем. Docker не виртуализация, а контейнеризация. Отсутствует виртуальная машина, в отличие от, например, VirtualBox. На бытовом уровне, есть некие изолированные виртуальные коробки-контейнеры, из которых наружу торчит, может, порт. И друг дружку эти коробки видят как компы в локальной сети.

Как тогда работать с проектом через IDE ? Если все окружение проекта на linux, а мы работаем на windows, как вообще люди работают через IDE в таких случаях ?
Как вариант, работать как с удалённым Linux сервером. Подключаться к нему по SSH, тот же VS Code умеет через расширение Remote-SSH.

Файлы копировать с компа в контейнеры (или наоброт) через
docker cp ./local.file  containerName://var/www/remote.file


За «роскошь» локальной-обычной работы с файлами прямо на компе с любым IDE, какой предпочитает любой из разработчиков, придётся расплачиваться докручиванием конфигов, которые будут отличаться от продакшена. И тогда, наверное, пропадает весь кайф докеризации-для-разработки.

В целом я бы не рекомендовал докер для локальной разработки, хотя сам пользуюсь в некоторых проектах.
Ответ написан
Комментировать
profesor08
@profesor08
Если для запуска проекта, для начала разработки, надо что-то больше чем:
а) npm run dev для проектов на js
б) php -S 0.0.0.0:8080 -t "%cd%" для проектов на пхп
в) команда запуска бд
г) работа независимо от операционной системы
то, с проектом что-то не так, и надо это исправлять. Есть общепринятые стандартизированные вещи, и надо придерживаться их. В противном случае так и будете сидеть на фигне вроде OpenServer и ему подобных, а потом каждому объяснять что и где тыкать мышкой, чтоб это завелось и проект заработал.

Да и установка специфичного софта, эксклюзивно для одного проекта, так себе идея, я б послал.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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