database

Docker Mysql 테스트서버 DB분리

MIN우 2024. 6. 7. 11:19
728x90

목차

· 개요

· 환경분리 Spring boot dev,prod 파일

· 결론

 

 

개요

인턴 프로젝트를 진행하면서 Staging 별 Spring서버가 분리되면서 DB도 분리해야 했다.

각각 DB가 다 다르게 담겨야하는데 어떻게할지 찾아보다 간단해서 바로 블로그로 옮기게 됐습니다

 

 

환경분리 Spring boot dev,prod 파일

방법 1 

Docker Mysql dev , Prod 각각 띄우기

spring:
  profiles:
    active: dev
    include: test

  datasource:
    url: jdbc:mysql://dev-mysql:3306/testdb?characterEncoding=UTF-8
    username: root
    password: password
    driver-class-name: com.mysql.cj.jdbc.Driver

  jpa:
    hibernate:
      ddl-auto: create

 

spring:
  profiles:
    active: prod
    include: test

  datasource:
    url: jdbc:mysql://mysql-prod:3306/testdb?characterEncoding=UTF-8
    username: root
    password: password
    driver-class-name: com.mysql.cj.jdbc.Driver

  jpa:
    hibernate:
      ddl-auto: create

 

방법 2

Docker DB명만 바꾸기

spring:
  profiles:
    active: dev
    include: test

  datasource:
    url: jdbc:mysql://containername:3306/testdb-dev?characterEncoding=UTF-8
    username: root
    password: password
    driver-class-name: com.mysql.cj.jdbc.Driver

  jpa:
    hibernate:
      ddl-auto: create

 

spring:
  profiles:
    active: prod
    include: test

  datasource:
    url: jdbc:mysql://containername:3306/testdb-prod?characterEncoding=UTF-8
    username: root
    password: password
    driver-class-name: com.mysql.cj.jdbc.Driver

  jpa:
    hibernate:
      ddl-auto: create

 

결론

if(인스턴스 메모리가 넉넉하다 ){

       클라우드 네이트브 환경에서 인스턴스의 메모리가 넉넉하다면 Container2개 띄워서 사용하면 될 것 같다.

}else{

      DB명만 다르게해서 매핑시켜 사용

}

 

728x90