Docker를 이용한 Spring Boot DB연결을 해보겠습니다
(spring data jpa 를 이용)
Docker가 뭔지 모르신다면 ?
https://itwhale.tistory.com/48
간단하게 설치방법,명령어에 대해 적어놨습니다
설명이 자세하지는 않지만 한번 따라해보시면 도움이 되실거라고 생각합니다
먼저 Spring Boot를 설정하고
Docker를 설정해보겠습니다
Spring Boot 설정
build.gradle 의존성 추가하기.
( Reload gradle 꼭 하기 )
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'com.mysql:mysql-connector-j'
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'
resources/application.yml 파일 추가하기
resources/application.properties 파일 추가하기
application.yml 파일 내용
( db는 mysql을 사용했습니다 )
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: ${SPRING_DATASOURCE_URL}
username: ${SPRING_DATASOURCE_USERNAME}
password: ${SPRING_DATASOURCE_PASSWORD}
jpa:
database: mysql
database-platform: org.hibernate.dialect.MySQLDialect
show-sql: true
hibernate:
ddl-auto: create
properties:
hibernate:
format_sql: true
application.properties 내용
URL,USERNAME,PASSWORD는 Docker에서 따로 환경변수로 추가할것이기 때문에 따라해도 무방합니다
spring.application.name=doWee
SPRING_DATASOURCE_URL=jdbc:mysql://localhost:3306/doWee?serverTimezone=Asia/Seoul
SPRING_DATASOURCE_USERNAME=doWee
SPRING_DATASOURCE_PASSWORD=pass
Couple.java 내용
( Entity로 객체가 매핑되어 DB에 해당하는 테이블을 생성해줍니다 )
@Entity
@Getter
@Setter
public class Couple {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Integer coupleId;
@Column(unique = true)
private String userName;
private String password;
@Column(unique = true)
private String email;
}
스프링부트의 설정은 끝이났습니다
Docker 설정
( sudo lsof -i :3306 을 통해 3306포트가 사용중인지 확인하고
사용중이라면 sudo kill -9 PID 를 통해 포트를 비워줍니다 )
터미널을 키고 Docker 설정
( SpringBoot application.properties의 내용과 일치해야합니다 )
docker run -d -p 3306:3306
-e MYSQL_ROOT_PASSWORD=rootpass
-e MYSQL_DATABASE=doWee
-e MYSQL_USER=doWee
-e MYSQL_PASSWORD=pass mysql
docker ps를 통해 컨테이너가 실행중인지 확인
그 후에 SpringBoot를 실행
정상적으로 실행됨을 확인 할 수 있다
과연 Docker에 설치된 mysql에 제대로 db table이 생성된게 맞을까?
눈으로 확인해 보자 !
docker ps를 통해 containerID를 확인하고
docker exec -it containerID bash 를 입력한다.
Docker 우분투 컨테이너에 진입
mysql -u doWee -p 명령어를 입력하면 password를 입력하라고 나오는데
Dockerd에 설정한 doWee의 비밀번호 pass를 입력해주면 된다.
show databases를 통해 doWee 스키마가 생성된걸 확인하고
doWee 스키마를 기본 스키마로 사용
정상적으로 스키마와 테이블이 생성된것을 알 수 있다.
이제 SpringBoot와 연결된 Docker mySQL에 어떻게 Data를 넣을까 ?
https://itwhale.tistory.com/66
다음글에 계속 !
'Docker(도커)' 카테고리의 다른 글
Docker를 활용한 Linux 실습환경 구축 (0) | 2024.07.04 |
---|---|
리눅스(Linux) 기초1 (0) | 2024.07.03 |
Docker를 통한 DB연결(데이터 저장) (0) | 2024.07.02 |
Docker(도커)란? 설치부터~! (0) | 2024.06.10 |