#!/usr/bin/env bash # 서버에서 직접 실행하는 배포 스크립트. # 1. (Docker / docker compose 가 설치되어 있다고 가정) # 2. 이미지 빌드 + 컨테이너 기동 # 3. 80 포트로 nginx 가 junggomoa.com 트래픽을 8501 streamlit 으로 프록시 set -euo pipefail cd "$(dirname "$0")" if ! command -v docker >/dev/null 2>&1; then echo "[!] docker 가 설치되어 있지 않습니다. 먼저 설치하세요." >&2 exit 1 fi # docker compose v2 (`docker compose`) 우선, 없으면 docker-compose v1 fallback if docker compose version >/dev/null 2>&1; then DC="docker compose" elif command -v docker-compose >/dev/null 2>&1; then DC="docker-compose" else echo "[!] docker compose / docker-compose 둘 다 없습니다. 설치 후 재시도." >&2 exit 1 fi echo "[+] 이미지 빌드..." $DC build echo "[+] 컨테이너 기동..." $DC up -d echo echo "[+] 상태:" $DC ps echo echo "[+] 로그 (앱 마지막 30줄):" $DC logs --tail=30 app || true echo echo "[OK] 배포 완료. 외부에서 http://junggomoa.com 으로 접속 확인하세요." echo " (DNS 가 서버 IP 를 가리키고 있어야 함. 80 포트가 방화벽에서 열려있어야 함.)" echo " HTTPS 는 별도 단계 — README.md 의 'HTTPS 발급' 섹션 참조."