docker compose Spring&MySQL

이진욱·2025년 1월 10일
0

Docker 공부

목록 보기
20/22

ex08 에서 db폴더, server 폴더 생성
(server 폴더는 메타코딩 님 github에서 다운로드 받았다)

스프링 서버의 Dockerfile 작성

  • 빌드된 파일들을 app.jar로 이동하도록 함

DB 서버의 Dockerfile 작성

  • /docker-entrypoint-initdb.d : MySQL 이미지는 이 디렉토리 내의 SQL 파일을 컨테이너 시작 시 자동으로 실행한다.
  • init.sql을 이 디렉토리에 덮어씌우면, 컨테이너가 시작될 때, 해당 SQL 파일이 시작된다.

docker-compose.yml 작성

  • 서비스명은 각각 db,server로 설정하였다.

  • 서비스명은 이름을 정의하는 것이므로, 어떻게 작성하는지는 상관이 없지만,

  • 하위항목은 지정이 되어있어서, 마음대로 수정이 불가능하다.

  • 하위 항목에서 depend_on은 의존성을 기입한다는 의미이다. server 서비스를 먼저 올릴 경우, db 서비스를 불러올 수 없어서, db 서비스를 먼저 올리고 server 서비스를 올리도록 하였다.

  • networks는 동일 네트워크로 묶었다.

db서버의 init.sql 작성

  • db 서비스가 실행될 때, 자동으로 실행된다.

설정을 완료하였다면 docker-compose를 build하면서 실행한다

docker-compose up -d --build


db, server 서비스가 잘 작동되었는지 확인한다.

server,db 서비스가 연동이 잘 되는 것을 확인하였다.

docker desktop에도 실행이 된 것을 확인할 수 있으며, ex08로 하나로 묶여있는 것을 확인하였다.

db, server image가 설치되었음을 확인

윈도우 호스팅 폴더 ./docker-test-db/store를 볼륨 위치로 잡았으므로, docker volumes에는 volume이 없다

profile
열심히 하는 신입 개발자

0개의 댓글