Files
distribution_erp/docker-compose.prod.yml
T
chpark 5f1983b0f6 feat(deploy): firebase-sa.json 호스트 마운트 추가 — FCM 발송용
호스트의 /home/chpark/momo-erp/firebase-sa.json 을 컨테이너 안
/deploy/firebase-sa.json (ro) 으로 마운트. .env.production 의 FIREBASE_SA_PATH
환경변수가 이 경로를 가리킴 → src/lib/firebase-push.ts 의 sendFcm() 가 정상 동작.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 00:11:43 +09:00

44 lines
1.8 KiB
YAML

# 운영 배포 (Traefik + momotogether.com)
# 대상 서버: 121.156.99.3 (Traefik v2.11 외부 네트워크 traefik-net 사용)
# 사용: docker compose -f docker-compose.prod.yml up -d --build
services:
momo-erp:
build:
context: .
dockerfile: Dockerfile
image: momo-erp:latest
container_name: momo-erp
restart: always
env_file:
- .env.production
volumes:
# 업로드 이미지 영구 저장 — named volume 사용
# (호스트 바인드 마운트 시 root 소유로 자동 생성되어 nextjs uid 1001 의 mkdir 권한 부족.
# named volume 은 이미지의 /data_storage 디렉토리(Dockerfile 에서 chown nextjs:nodejs)를
# 볼륨 초기화 시 그대로 복제하므로 권한 문제 없음.)
- momo_data_storage:/data_storage
# 자가 배포: webhook 이 호스트의 deploy.sh 를 실행하기 위함
- /var/run/docker.sock:/var/run/docker.sock
- ./scripts/deploy.sh:/deploy/deploy.sh:ro
# source 디렉토리를 컨테이너 안에서 git pull 하기 위해 호스트의 소스를 마운트
- $PWD:/deploy/source
# Firebase Admin SDK service account (FCM 발송용) — 호스트의 안전한 위치에서만 마운트
- /home/chpark/momo-erp/firebase-sa.json:/deploy/firebase-sa.json:ro
networks:
- traefik-net
labels:
- traefik.enable=true
- traefik.docker.network=traefik-net
- traefik.http.routers.momo-erp.rule=Host(`momotogether.com`) || Host(`www.momotogether.com`)
- traefik.http.routers.momo-erp.entrypoints=websecure,web
- traefik.http.routers.momo-erp.tls=true
- traefik.http.routers.momo-erp.tls.certresolver=le
- traefik.http.services.momo-erp.loadbalancer.server.port=3000
networks:
traefik-net:
external: true
volumes:
momo_data_storage: