작업 배경
PR #33 병합으로 캡슐 암호화 기능이 develop에 반영된 이후, GSMSV 학교 VM에서 MUDDA를 최초 수동 배포할 수 있도록 Docker 기반 운영 환경을 구성했습니다.
기존 docker-compose.yml은 로컬 개발용 PostgreSQL/PostGIS·Redis 구성으로 유지하고, 운영 환경은 별도 Compose 파일로 분리했습니다.
완료 내용
운영 환경
- GSMSV Project Owner VM: Ubuntu 22.04.5 LTS, x86_64, 2 vCPU, RAM 7.9GB, 디스크 40GB
- GSMSV HTTPS Reverse Proxy가
mudda-api.https.gsmsv.site의 HTTPS를 종료하고 VM 내부 8080으로 전달
- Nginx·Certbot은 사용하지 않음
- PostgreSQL/PostGIS와 Redis는 Compose 내부 네트워크에서만 접근
산출물
Dockerfile
.dockerignore
docker-compose.prod.yml
.env.production.example
src/main/resources/application-prod.yaml
src/main/kotlin/team/cklob/mudda/global/config/SecurityConfig.kt
src/test/kotlin/team/cklob/mudda/global/config/SecurityConfigTest.kt
docs/GSMSV_MANUAL_DEPLOYMENT.md
.gitignore 운영 Secret·Credential 제외 규칙
검증 결과
전체 ./gradlew test·./gradlew check와 Docker 이미지 빌드·Compose 통합 기동은 Docker Desktop Linux Engine이 실행되지 않은 환경에서 Testcontainers가 Docker 데몬을 찾지 못해 실행하지 못했습니다. 실제 GSMSV VM 배포 전에 Docker 환경에서 PostgreSQL/PostGIS·Redis·App 기동, Flyway, Health, 볼륨, 재시작, 포트 노출을 추가 확인해야 합니다.
제외 범위 및 후속 작업
- GSMSV VM 최초 실제 배포 및 도메인 생성
- PostgreSQL 백업 구성
- develop 기반 GitHub Actions CD 및 GHCR 배포
- Discord 웹훅 임베드 알림
- Nginx·Certbot, 자동 롤백, Blue-Green, Kubernetes, 모니터링 스택
- Redis 인증 추가
관련 PR
대상 브랜치: develop
작업 배경
PR #33 병합으로 캡슐 암호화 기능이
develop에 반영된 이후, GSMSV 학교 VM에서 MUDDA를 최초 수동 배포할 수 있도록 Docker 기반 운영 환경을 구성했습니다.기존
docker-compose.yml은 로컬 개발용 PostgreSQL/PostGIS·Redis 구성으로 유지하고, 운영 환경은 별도 Compose 파일로 분리했습니다.완료 내용
Dockerfile추가docker-compose.prod.yml추가8080만 공개Asia/Seoul운영 시간대 및 2 vCPU·8GB RAM 환경에 맞춘 JVM 설정 구성.env.production.example추가.env·Secret 제외 규칙 확인운영 환경
mudda-api.https.gsmsv.site의 HTTPS를 종료하고 VM 내부8080으로 전달산출물
Dockerfile.dockerignoredocker-compose.prod.yml.env.production.examplesrc/main/resources/application-prod.yamlsrc/main/kotlin/team/cklob/mudda/global/config/SecurityConfig.ktsrc/test/kotlin/team/cklob/mudda/global/config/SecurityConfigTest.ktdocs/GSMSV_MANUAL_DEPLOYMENT.md.gitignore운영 Secret·Credential 제외 규칙검증 결과
SecurityConfigTest통과./gradlew build -x test통과git diff --check통과전체
./gradlew test·./gradlew check와 Docker 이미지 빌드·Compose 통합 기동은 Docker Desktop Linux Engine이 실행되지 않은 환경에서 Testcontainers가 Docker 데몬을 찾지 못해 실행하지 못했습니다. 실제 GSMSV VM 배포 전에 Docker 환경에서 PostgreSQL/PostGIS·Redis·App 기동, Flyway, Health, 볼륨, 재시작, 포트 노출을 추가 확인해야 합니다.제외 범위 및 후속 작업
관련 PR
대상 브랜치:
develop