Docker-Compose.yml에 Springboot, Mysql 설정파일을 추가하여 2개의 컨테이너를 구성한 애플리케이션을 실행시켜 보려고 합니다. 우선적으로 백엔드 서버, DB 서버를 연동하는 것이 목표기 때문에 간단한 프로젝트를 가지고 왔습니다.
한 가지 주의사항은 포트 충돌을 방지하기 위해 Mysql DB 서비스를 꺼놔야 합니다.
Terminal:
netstat -ano | findstr 3306 (3306 포트를 사용하는 프로그램 확인)
3306 포트를 사용하고 있는 프로그램이 있다면 중지시켜야 합니다.
상품을 조회하는 로직 하나를 만들어 두었고, 다음과 같이 더미데이터를 넣어두었습니다.
이제 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 명령어를 통해 연동이 가능해집니다 !
'DevOps > Docker' 카테고리의 다른 글
[Docker] Dockerfile을 이용해 SpringApplication 빌드 및 실행 (0) | 2023.09.14 |
---|---|
[Docker] Docker-Compose를 사용하여 Springboot와 ELK stack 연동 (0) | 2023.09.04 |
[Docker] Docker, Docker-Compose, Dockerfile (0) | 2023.08.31 |
[Docker] Container vs VM (0) | 2023.08.31 |
Docker (0) | 2022.10.04 |