DevOps/Docker

[Docker] Docker-Compose를 사용하여 Springboot, Mysql 연동

SeungbeomKim 2023. 8. 31. 18:02
반응형

 

Docker-Compose.yml에 Springboot, Mysql 설정파일을 추가하여 2개의 컨테이너를 구성한 애플리케이션을 실행시켜 보려고 합니다. 우선적으로 백엔드 서버, DB 서버를 연동하는 것이 목표기 때문에 간단한 프로젝트를 가지고 왔습니다.

 

한 가지 주의사항은 포트 충돌을 방지하기 위해 Mysql DB 서비스를 꺼놔야 합니다.

 

Terminal:

netstat -ano | findstr 3306 (3306 포트를 사용하는 프로그램 확인)

 

3306 포트를 사용하고 있는 프로그램이 있다면 중지시켜야 합니다. 

Window + R -> services.msc -> Mysql(사용 안함)

 

상품을 조회하는 로직 하나를 만들어 두었고, 다음과 같이 더미데이터를 넣어두었습니다.

 

이제 application.yml부터 docker-compose.yml 까지 차근차근 설명드리겠습니다.

 

애플리케이션 환경에 따라 설정 값을 분리하기 위해 application.yml, application-dev.yml(개발), application-prod.yml(운영)으로 구성하였습니다. application-prod, -dev.yml에는 Database에 필요한 설정 정보들이 담겨 있습니다.

 

application.yml

application-prod.yml

 

 

application-dev.yml

 

Docker-compose.yml

db, server라는 서비스를 정의하고, 이들을 하나의 네트워크로 묶어주었습니다. 

 

depends_on : db

  • db가 만들어지지 않은 상태에서 서버가 만들어지면 오류가 나기에 이를 방지하기 위해 db 명시
  • db가 만들어지고 나서 서버 실행

 

Dockerfile

 

이제 docker-compose up -d --build 명령어를 통해 연동이 가능해집니다 !

 

반응형