랄라
[TIL 22일차]25.03.18 본문
데이터베이스를 각 서브모듈당 실행하는것이 아닌,
하나의 데이터베이스를 쓰되 스키마 단위로 나누는 요구사항이 존재하여
데이터베이스를 루트모듈에서 docker로 실행을 시도했다.
postgres:
image: postgres:latest
container_name: 컨테이너이름
ports:
- "5001:5432" # 외부에서 접속할 수 있는 포트
environment:
POSTGRES_USER: 사용자이름
POSTGRES_PASSWORD: 비밀번호
POSTGRES_DB: 데이터베이스 이름 # 생성할 데이터베이스 이름
volumes:
- postgres_data:/var/lib/postgresql/data # 데이터가 유지될 경로
networks:
- 서비스를 연결할 네트워크
user:
build:
context: .
dockerfile: 도커파일경로
container_name: 컨테이너이름
ports:
- "8081:8080"
depends_on:
- eureka-servers
environment:
- EUREKA_CLIENT_SERVICEURL_DEFAULTZONE=http://eureka-servers:8761/eureka
- SPRING_PROFILES_ACTIVE=docker
- SPRING_DATASOURCE_URL=jdbc:postgresql://컨테이너이름:5001/데이터베이스이름
- SPRING_DATASOURCE_USERNAME=사용자이름
- SPRING_DATASOURCE_PASSWORD=비밀번호
- SPRING_DATASOURCE_SCHEMA=스키마이름
networks:
- 서비스를 연결할 네트워크(postgres와 동일하게!)
데이터베이스는 자동으로 생성되었지만 스키마는 자동으로 생성되어지지 않아,
명령어를 사용하여 따로 생성을 하니 테이블은 작성한 엔티티를 따라 정상적으로 데이터베이스에 생성이 되었다.
아직은 다른 리팩토링을 신경써야해서 인증인가 리팩토링이 완료된 후 다시 시도를 해볼것 같다.
'내일배움캠프 > TIL' 카테고리의 다른 글
| [TIL 24일차]25.03.20 (0) | 2025.03.21 |
|---|---|
| [TIL 23일차]25.03.19 (0) | 2025.03.20 |
| [TIL 21일차]25.03.17 (0) | 2025.03.20 |
| [TIL 20일차]25.03.14 (0) | 2025.03.15 |
| [TIL 19일차]25.03.12 (0) | 2025.03.13 |