spring : 도커를 통해 DB를 사용해보자.

김용재·2024년 10월 15일

개요

도커에 대한 사용이유등에 관련한 내용은 일전에 글로 작성했다.
아래 글을 통해 도커의 사용이유를 알 수 있다.
도커 정리
내가 생각하는 도커의 사용이유는 두가지다.
1. 특정 스택을 편하게 사용하기 위해
2. 배포시 필요한 것들을 편하게 설치하기 위함이다.

1번의 이점을 개발하는 내내 톡톡히 봤기 때문에 이렇게 글로 정리해서 나도 글로 보려고 한다.
필자는 맥북 m1 에어 환경이며 이글은 선수지식을 다음과 같다.

  • docker
  • docker compose

정리

db나 레디스를 사용하는 경우 로컬에 설치하는 것보다 도커를 통해 관리하면 관리에 용이하다.
docker compose 는 여러컨테이너를 사용할때 편하겠지만 docker run을 통해 설정값들을 주렁주렁 다는 것보다 훨씬 편하다.

이글은 mysql 연결을 예시로 든것이며 environment는 서비스별로 전부 다르다.

# docker.compose.yml 
 services:
  db:
    image: mysql:8.0  # MySQL 이미지 버전
    container_name: myselectshop  # 컨테이너 이름
    environment:
      MYSQL_ROOT_PASSWORD: 12345  # 루트 비밀번호
      MYSQL_DATABASE: shop  # 생성할 데이터베이스 이름
      MYSQL_USER: mysqlmysql  # 새 사용자 이름
      MYSQL_PASSWORD: 12345  # 새 사용자 비밀번호
    ports:
      - "3306:3306"  # 호스트와 컨테이너의 포트 매핑
    volumes:
      - mysql_data:/var/lib/mysql  # Named volume 사용

volumes:
  mysql_data:  # Docker가 자동으로 생성# 데이터 지속성을 위한 볼륨 설정


# application.yml 
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/shop
    username: mysqlmysql
    password: 12345
    

application.yml은 해당하는 서버에 연결정보등을 기록할 수 있는 관리파일이다
해당 파일에 db 접속정보를 위에 도커를 통해 작성한 정보와 똑같이 맞춘다.

profile
멋진 내가 되기 위한 발걸음

0개의 댓글