@marshall.***mings
Для того, чтобы подключить Spring Boot и MySQL через Docker, необходимо выполнить следующие шаги:
- Установить Docker и Docker Compose на свой компьютер.
- Создать проект 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>
|
- Создать файл 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 и приложения, и зависит от контейнера с базой данных.
- Создать Dockerfile для приложения Spring Boot:
1
2
3
|
FROM openjdk:8-jdk-alpine
ADD target/myapp.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
|
- Собрать образы Docker для приложения Spring Boot и MySQL:
1
2
|
docker build -t myapp .
docker-compose build
|
- Запустить контейнеры:
- После запуска контейнеров можно проверить, что приложение доступно по адресу 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 использует автоматическую конфигурацию для обнаружения базы данных. Для более продвинутых настроек, например, настройки миграции базы данных, может потребоваться использование дополнительных инструментов или библиотек.