Docker Compose и Spring Boot 3.1
Наверняка вам приходилось запускать разрабатываемое приложение для какого-то ручного тестирования разрабатываемых функций. А для этого, как правило, нужно некоторое окружение: базы данных, серверы кэша, брокеры очередей сообщений и т.д.
И чтобы не разворачивать это всё вручную, можно использовать контейнеры, а разработчики Spring Boot предлагают интеграцию Spring Boot и Docker Compose, благодаря которой использование контейнеров требует минимум кода.
📖 Читать на сайте alexkosarev.name/2023/06/05/d...
📖 Читать в VK @shurik.codes-docker-c...
📖 Читать в Telegraph telegra.ph/Docker-Compose-i-T...
#java #docker #springboot #dockercompose
Мой сайт: alexkosarev.name/
Паблик в VK: public218833461
Канал в Telegram:t.me/+TZCuO38vG3oqu_Jq
Стать доном: donut/shurik.codes
Донаты в Boosty: boosty.to/akosarev/purchase/1...
Донаты в Tinkoff: www.tinkoff.ru/cf/4PEOiVCZQuS
Пікірлер: 27
Мега полезная информация. Только учусь и сразу при сборке выбирал Docker Compose - но не понимал механизм =) Спасибо
Круто, нравится подача. Продолжайте
Все круто, спасибо
Саша, спасибо вам за потрясающие видео. Вы выбрали отличный формат, когда показываете связки кода, которые максимально приближены к реальным, а не абстрактные сценарии. Получается очень круто! Единственное маленькое замечание - вы отлично владеете горячими клавишами Идеи. Поставьте плагин Presentation Assistant, он будет показывать комбинации клавиш, которые вы нажимаете. Это тоже бывает очень интересно и ценно.
@shurik_codes
5 ай бұрын
Учту)
спасибо большое!! оч классно!
Супер, спасибо
Спасибо за очень интересное видео! Хотелось бы подробнее узнать как писать микросервисы и связывать их между собой.
Часто использую тест контейнеры для интеграционных тестов например запустить постгрес, еластиксеарч и прочие. И вся время в голове крутился вопрос почему нету интеграции не только для написания тестов но и для локальной разработки, приходилось в ручную или при помощи экстерных мавен/градле плугинов запускать докер/композе, теперь она появилась "нативная" от спринг и докер композе. Команда спринга рулит буду использовать при необходимости, спасибо.
Спасибо!
В схеме можно перед вставкой данных написать "IF NOT EXISTS create ....", таким образом можно оставить init mode always и если таблицы уже есть, они не создадутся и приложение тем самым не вылетит с ошибкой
Кайф просто🧠🔥
а для gradle не подскажите какая настройка должна быть где посмотреть ?
Лайк, коммент, некст!
Подниму вопрос выше по ветке, а то потерялся. А что значит приставка в c_username и t_user ? Спасибо)
@shurik_codes
9 ай бұрын
Это префиксы структур: c_ - обычная колонка, id_ - внешний или первичный ключ, t_ - таблица, v_ - вьюха и т.д. Для удобства
@vik11111
9 ай бұрын
@@shurik_codes спасибо) 🥰
А как установить версию контейнера в одном месте. Чтобы и в тестовом контейнере для интеграционного тестирования и в тестовом контейнере для ручных тестов и в docker compose файле применялась одна и та же версия контроллера. Чтобы не менять версии в нескольких местах.
@shurik_codes
2 ай бұрын
Не думаю, что есть какие-то стандартные решения. Но можно попробовать переменные окружения, либо создавать собственный тег у нужного образа. Но это нужно будет сначала конкретную версию образа скачать.
@rainrainov4495
2 ай бұрын
@@shurik_codes спасибо за ответ. Да что-то стандартного решения не нашел. Хотя кажется логическим, зачем указывать версии в нескольких местах. Ведь тестировать на той же версии что и в продакшн логично. Возможно позже добавят.
А сайт со статьей работает? Не могу подключиться - соединение падает по таймауту
@shurik_codes
2 ай бұрын
Сайт временно недоступен
почему jdbc, а не spring data ?
@shurik_codes
11 ай бұрын
Потому что я так захотел)
spring.docker.compose.lifecycle-management=start_and_stop - не останавливает контейнер у меня
@shurik_codes
7 ай бұрын
Но вообще должно. Каким образом запускается контейнер? И что за контейнер?
@trymad693
6 ай бұрын
@@shurik_codes Аналогичная проблема. В моем случае у меня описано 2 контейнера: postgres и pgadmin, у каждого переброшены порты и прописаны volumes. Так же указал в application.yml файле значение start_and_stop, и контейнеры создаются и запускаются вместе с приложением, но не выключаются если завершить само приложение.