[SpringBoot] JPA와 Mariadb 도커 컨테이너 연동

2021. 12. 8. 22:07

- 도커 MariaDB 컨테이너 설치 및 실행

# docker pull mariadb -> lastest

또는 

# docker pull mariadb:(버전)

docker pull이 끝나면

# docker container run -d -p 3306:3306 \

> --name mariadb \

> -e MARIADB_DATABASE={생성할DB명} \

> -e MARIADB_USER={생성할 유저 명} \

> -e MARIADB_PASSWORD={유저패스워드} \

> -e MARIADB_ROOT_PASSWORD={루트패스워드} \

> mariadb:10.5.12 (사용할 maria images)

입력하여 container 실행 

 

# docker ps

실행확인

- mariadb 접속

mariadb에 접속하기 위해 mariadb-client를 설치한다.

# sudo apt update

# sudo apt install mariadb-client

설치가 완료되면 접속해본다.

 

# mariadb -h 127.0.0.1 -p 3306 -u root -p

비밀번호 입력 창이 나오면 설정한 루트 비밀번호를 입력

> show databases;

생성한 database가 잘 생성되었는지 확인한다.

 

- Spring Boot JPA 설정

SpringBoot의 빌드툴로 Gradle을 사용하고 있기에 Gradle 기준으로 확인해보겠다.

 

먼저 build.gradle 에 dependencies에 jpa와 mariadb, lombok을 추가한다.

implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
annotationProcessor(
			"javax.persistence:javax.persistence-api",
			"javax.annotation:javax.annotation-api"
	)

그리고 설정파일(application.yml 또는 application.properties, 여기서는 yml 파일 사용)에 관련 설정 값을 추가한다.

spring:
    jpa:
    	hibernate:
      		ddl-auto: update
        show-sql: true
    datasource:
      url: jdbc:mysql://127.0.0.1:3306/{DB명}?characterEncoding=UTF-8&serverTimezone=UTC
      username: {유저명}
      password: {유저패스워드}
      driver-class-name: org.mariadb.jdbc.Driver

이후 SpringBootApplication 을 실행시켜본다.

다음과 같이 정상적으로 빌드 된다면 성공이다.