#!/bin/bash # PMS 운영 환경 배포 스크립트 # 사용법: ./docker/deploy/deploy.sh set -e # 프로젝트 루트로 이동 cd "$(dirname "$0")/../.." # 도커 컴포즈 파일 경로 COMPOSE_FILE="docker/deploy/docker-compose.yml" echo "======================================" echo "PMS 운영 환경 배포" echo "======================================" # Git 최신 코드 가져오기 echo "" echo "[1/6] Git 최신 코드 가져오기..." git pull origin main # 호스트 디렉토리 준비 (볼륨 마운트용 루트 디렉토리만 생성) echo "" echo "[2/6] 호스트 디렉토리 준비..." mkdir -p /home/vexplor/backend_data/uploads mkdir -p /home/vexplor/backend_data/data mkdir -p /home/vexplor/frontend_data # node 유저(UID 1000)와 동일한 소유권 설정 chown -R 1000:1000 /home/vexplor/backend_data chown -R 1001:1001 /home/vexplor/frontend_data chmod -R 755 /home/vexplor/backend_data chmod -R 755 /home/vexplor/frontend_data echo "볼륨 마운트 디렉토리 생성 완료 (node 유저 권한 부여)" # 기존 컨테이너 중지 및 제거 echo "" echo "[3/6] 기존 컨테이너 중지..." docker-compose -f "$COMPOSE_FILE" down # 오래된 이미지 정리 echo "" echo "[4/6] Docker 이미지 정리..." docker image prune -f # 새로운 이미지 빌드 echo "" echo "[5/6] Docker 이미지 빌드..." docker-compose -f "$COMPOSE_FILE" build --no-cache # 컨테이너 실행 echo "" echo "[6/6] 컨테이너 실행..." docker-compose -f "$COMPOSE_FILE" up -d # 배포 완료 echo "" echo "======================================" echo "배포 완료!" echo "======================================" echo "" echo "Frontend: https://v1.vexplor.com" echo "Backend: https://api.vexplor.com" echo "" docker-compose -f "$COMPOSE_FILE" ps echo ""