반응형
✅ 1. .env > DB_NAME 다르게 수정
1) 인증서버
DB_HOST=localhost
DB_PORT=3306
DB_NAME=[인증서버 DB 이름] // 상이
DB_USER=[사용자명]
DB_PASSWORD=[비번입력]
2) 자원서버
DB_HOST=localhost
DB_PORT=3306
DB_PORT_RESOURCE=3307 // 추가
DB_NAME=[자원서버 DB 이름] // 상이
DB_USER=[사용자명]
DB_PASSWORD=[비번입력]
✅ 2. docker-compose.yml > ports 수정 후 각각 실행
1) 인증서버 3306:3306
형식
2) 자원서버 3307:3306
형식
docker-compose.yml 코드 (해당 파일 또한 인증서버, 자원서버에 각각 존재)
version: "3.9"
services:
mariadb:
image: mariadb:latest
container_name: gold-auth-mariadb
ports:
- ${DB_PORT}:${DB_PORT} # 인증서버 ver.
- ${DB_PORT_RESOURCE}:${DB_PORT} # 자원서버 ver.
restart: always
environment:
MARIADB_DATABASE: ${DB_NAME}
MARIADB_ROOT_PASSWORD: ${DB_PASSWORD}
volumes:
- mariadb-vl:/var/lib/mariadb
volumes:
mariadb-vl:
driver: local
✅ 3. 각각 실행 잘 됨!!

✅ 4. DB 스키마 생성 시 Database 이름, Port 번호 다르게 입력
1) 인증서버 - Port 3306

2) 자원서버 - Port 3307

✅ 5. application.yml 설정하면 서버 실행까지 정상적으로 완료~!
1) 인증서버
server:
port: 8888 # 상이
spring:
application:
name: auth-server
# .env import
config:
import: optional:file:.env[.properties]
datasource:
url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/${DB_NAME} ### 상이
username: ${DB_USER}
password: ${DB_PASSWORD}
driver-class-name: org.mariadb.jdbc.Driver
jpa:
open-in-view: true
hibernate:
ddl-auto: create # 서버 실행 시 DB의 모든 테이블 삭제 후 재생성
naming:
use-new-id-generator-mappings: false
show-sql: true
properties:
hibernate:
id:
new_generator_mappings: true
format_sql: true
dialect: org.hibernate.dialect.MariaDBDialect
defer-datasource-initialization: true # (2.5~) Hibernate 초기화 이후 data.sql 실행
2) 자원서버
server:
port: 9999 # 상이
spring:
application:
name: resource-server
# .env import
config:
import: optional:file:.env[.properties]
datasource:
url: jdbc:mariadb://${DB_HOST}:${DB_PORT_RESOURCE}:${DB_PORT}/${DB_NAME} ### 상이
username: ${DB_USER}
password: ${DB_PASSWORD}
driver-class-name: org.mariadb.jdbc.Driver
jpa:
open-in-view: true
hibernate:
ddl-auto: create # 서버 실행 시 DB의 모든 테이블 삭제 후 재생성
naming:
use-new-id-generator-mappings: false
show-sql: true
properties:
hibernate:
id:
new_generator_mappings: true
format_sql: true
dialect: org.hibernate.dialect.MariaDBDialect
defer-datasource-initialization: true # (2.5~) Hibernate 초기화 이후 data.sql 실행
< 해당 글은 velog에서 이전하며 옮겨온 글로, 가독성이 좋지 않을 수 있는 점 양해 부탁드립니다. >
🔗 velog 버전 보기 : https://velog.io/@ryuneng2/Docker-도커로-2개의-DB를-동시에-실행하는-방법
'DevOps > Docker' 카테고리의 다른 글
[Docker] Docker 이미지(Image) 관련 명령어 (0) | 2025.01.25 |
---|---|
[Docker] 로컬에 DB 설치하지 않고 Docker로 데이터베이스 사용하기 (0) | 2025.01.25 |
[Docker] Windows11 Docker Desktop 설치하는 방법 (0) | 2025.01.25 |
[Docker] Docker란? 도커를 쓰는 이유 (0) | 2025.01.25 |