27강은 그냥 기본적인 SpringBoot 앱을 만드는 과정이다. 굳이 따라하지 않아도 소스가 Git에 올라와있어서 나중에 필요할 때 clone만 받으면 될 것 같다.

 

https://github.com/codingspecialist/docker-product

 

GitHub - codingspecialist/docker-product

Contribute to codingspecialist/docker-product development by creating an account on GitHub.

github.com

 

 

도커로 Spring & MySQL 컨테이너를 만들어서 실행시켜보는 강의이다.

 

강의는 [도커 입문 23강 Spring& MySQL] 강의와 매우 비슷하게 진행되었다. 실제로도 23강에서 사용했던 Dockerfile, docker-compose.yml 파일을 재활용했다.

 

이전 25강은 React에 대해서 간단하게 배웠다면 이번에는 React와 연결전에 백엔드에 대해서 알려주는 느낌이랄까

 

[실습 전 준비]

실습 디렉토리 : ~/ex09

GIT HUB : https://github.com/codingspecialist/docker-study/tree/main

 

GitHub - codingspecialist/docker-study

Contribute to codingspecialist/docker-study development by creating an account on GitHub.

github.com

강사님의 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 로 접속해서 제대로 나오는지 확인 하면 끝!

 

npx create-react-app my-app 

으로 간단한 react-app 만들어보고 끝! 리액트 맛보기 느낌

 

+ Recent posts