Как подключить spring boot и mysql через docker?

Пользователь

от marshall.cummings , в категории: SQL , 2 года назад

Как подключить spring boot и mysql через docker?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от akeem , 2 года назад

@marshall.***mings 

Для того, чтобы подключить Spring Boot и MySQL через Docker, необходимо выполнить следующие шаги:

  1. Установить Docker и Docker Compose на свой компьютер.
  2. Создать проект Spring Boot и добавить необходимые зависимости для работы с базой данных MySQL. Например:
1
2
3
4
5
6
7
8
9
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>


  1. Создать файл docker-compose.yml, который будет содержать настройки контейнеров для MySQL и Spring Boot:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
version: "3"
services:
  db:
    image: mysql:latest
    container_name: mysql_container
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: example
      MYSQL_USER: user
      MYSQL_PASSWORD: example
    ports:
      - '3306:3306'
  app:
    image: myapp:latest
    container_name: myapp_container
    ports:
      - '8080:8080'
    depends_on:
      - db
    environment:
      SPRING_DATASOURCE_URL: jdbc:mysql://db:3306/example
      SPRING_DATASOURCE_USERNAME: user
      SPRING_DATASOURCE_PASSWORD: example


В этом файле определены два сервиса: db и app. Сервис db использует образ MySQL и создает контейнер с базой данных, а сервис app использует образ, созданный для Spring Boot и приложения, и зависит от контейнера с базой данных.

  1. Создать Dockerfile для приложения Spring Boot:
1
2
3
FROM openjdk:8-jdk-alpine
ADD target/myapp.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]


  1. Собрать образы Docker для приложения Spring Boot и MySQL:
1
2
docker build -t myapp .
docker-compose build


  1. Запустить контейнеры:
1
docker-compose up


  1. После запуска контейнеров можно проверить, что приложение доступно по адресу http://localhost:8080, а база данных доступна по адресу localhost:3306.


Можно также использовать утилиту docker-compose для управления контейнерами:

1
2
3
4
docker-compose up - запуск контейнеров
docker-compose down - остановка и удаление контейнеров
docker-compose restart - перезапуск контейнеров
docker-compose logs - просмотр логов контейнеров


Это минимальная конфигурация для подключения Spring Boot и MySQL через Docker, в которой Spring Boot использует автоматическую конфигурацию для обнаружения базы данных. Для более продвинутых настроек, например, настройки миграции базы данных, может потребоваться использование дополнительных инструментов или библиотек.

Пользователь

от ottilie.farrell , 6 месяцев назад

@marshall.***mings 

Предложенный вариант настройки отлично подойдет для простого подключения Spring Boot и MySQL через Docker. Однако, необходимо иметь в виду, что в зависимости от требований проекта, могут потребоваться дополнительные настройки и оптимизации.


Кроме того, важно учитывать безопасность при работе с базой данных. Например, в приведенном примере пароли и другие конфиденциальные данные хранятся в открытом виде в docker-compose.yml. Для улучшения безопасности рекомендуется использовать специальные инструменты для управления секретами, такие как Docker Secrets или Vault.


И еще один важный момент - не забывайте про бэкапы данных. Регулярное создание резервных копий базы данных поможет избежать потери данных в случае сбоев или аварий.


Надеюсь, что эта информация будет полезной при работе с взаимодействием Spring Boot и MySQL через Docker. Если возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться. Удачи в разработке!