@CenterJoin

Docker только для развертывания?

Я новичок в использовании Docker и мне не совсем понятно, как разрабатывать, именно получать результат изменения одной строчки кода в реалтайм используя Docker.
Вроде бы есть volumes, но они только хранят настройки, как я понял, и в каждый раз нужно переподнимать контейнер.

Возможно вопрос глупый, но как быть? Как нормально разрабатывать если каждый раз следует обновлять контейнер?
  • Вопрос задан
  • 157 просмотров
Решения вопроса 1
@CenterJoin Автор вопроса
Проблема была в том, что каталог не находился в каталоге, определенном в настройках общего доступа к файлам Docker. https://docs.docker.com/get-started/06_bind_mounts/
Ошибка в том, что я размещал проект по адресу /var/www/my_project (поскольку работаю на linux), тогда как этот каталог не находится в месте определенном в настройках общего доступа к файлам Docker. Я переместил проект по адресу /home/my_user/ и все получилось! Теперь я могу без проблем вести разработку не переподнимая свои контейнеры!
Спасибо всем за ответы!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
Использовать CI\CD, которая сделает все за вас после изменения вами кода.
Ответ написан
AshBlade
@AshBlade
Просто хочу быть счастливым
Как нормально разрабатывать если каждый раз следует обновлять контейнер?

Мне не совсем понятен вопрос - к чему это относится?

Если вопрос про hot update, когда ты поменял пару строчек и сразу увидел изменения. То тут у каждого инструмента (ЯП, IDE, фреймворки) есть свои особенности, надо искать под каждый свое решение. Например, в Rider есть возможность обновления уже запущенного кода в контейнерах. Это реализуется как раз за счет создания таких вольюмов (больше сказать особенно не могу - не изучал)

Если вопрос про то, что добавил эндпоинт/функцию и т.д. и надо все заново собирать с новой версией - это правильный подход. Называется заморозка версии. Это необходимо для того, чтобы та функциональность которую ты предоставляешь корректно работала у всех и обновления не сломали уже работающий код других. Например, у тебя версия sample-image:1.0.0 в которой есть функциональность подсчета времени - она возвращает время в мс, а потом ты сделал так, что эта функциональность возвращает время в нс. Если не создать для этого новую версию, то старые приложения в лучшем случае аварйино завершатся.

PS Вообще, вольюмы - это универсальный инструмент и годится не только для прокидывания настроек.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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