도커로 Spring & MySQL 컨테이너를 만들어서 실행시켜보는 강의이다.
강의는 [도커 입문 23강 Spring& MySQL] 강의와 매우 비슷하게 진행되었다. 실제로도 23강에서 사용했던 Dockerfile, docker-compose.yml 파일을 재활용했다.
이전 25강은 React에 대해서 간단하게 배웠다면 이번에는 React와 연결전에 백엔드에 대해서 알려주는 느낌이랄까
[실습 전 준비]
실습 디렉토리 : ~/ex09
GIT HUB : https://github.com/codingspecialist/docker-study/tree/main
강사님의 git에서 모든 디렉토리를 다운로드 받아서 ex09를 보면된다.
product : Spring Boot 프로젝트(gradle)
db : Mysql
[DB]
db 디렉토리에 있는 Dockerfile은 23강에서 실습했던 내용과 똑같다. 다만, init.sql에서 초기화하는 쿼리문이 살짝 달라졌지만 어렵지않다.
[Spring Boot]
Spring Boot는 product 디렉토리에 있는데, /product/src/main/resources/application.yml에서 profiles -> active를 prod로 변경해주면 된다. 사실 해당 작업은 안해도 무방한데, product의 Dockerfile에서 맨 마지막 ENTRYPOINT 부분에 -Dspring.profiles.active=prod를 추가할 것이기 때문에 안해도 상관은 없다.
그리고 /product/src/main/resources/application-prod.yml 에서 Datasource 연결 부분을 모두 환경변수로 잡는것 정도?
spring:
datasource:
url: ${SPRING_DATASOURCE_URL}
username: ${SPRING_DATASOURCE_USERNAME}
password: ${SPRING_DATASOURCE_PASSWORD}
driver-class-name: ${SPRING_DATASOURCE_DRIVER}
product안에 있는 Dockerfile도 23강에서 했던 내용과 비슷하다.
[docker-compose.yml]
SpringBoot 컨테이너와 mysql컨테이너를 묶어서 실행시키 위한 docker-compose.yml을 작성했는데 이것 또한... 23강에서 사용한 것을 복사/붙여넣기 하면 된다.
단, 변경해야할 것들이 몇 가지 있는데... build > context를 db, product로 각각 맞게 변경해주어야 한다. 그리고 db는 volumes도 ./db로 변경해줘야 한다. (이는 필수는 아님..)
이렇게 해서 docker compose up -d --build 를 하면 컨테이너들이 실행된다.
[서버주소]:8080/products 로 접속해서 제대로 나오는지 확인 하면 끝!
'코딩이야기 > Docker' 카테고리의 다른 글
도커 입문 28강 - 도커컴포즈 Nginx로 html 실행해보기 (0) | 2024.07.21 |
---|---|
[도커 입문 27강] 도커컴포즈 Spring 앱 만들어보기 (0) | 2024.07.21 |
[도커 입문 24강] - 도커 컴포즈 React & Spring & MySQL (0) | 2024.07.19 |
[도커 입문 23강] - 도커 컴포즈 Spring & MySQL (1) | 2024.07.19 |
도커 입문 22강 - 도커컴포즈 튜토리얼 따라해보기 (0) | 2024.07.17 |