66 lines
2.0 KiB
Bash
66 lines
2.0 KiB
Bash
#!/bin/bash
|
|
# Linux/macOS용 Docker 실행 스크립트 (프로덕션)
|
|
|
|
echo "================================"
|
|
echo "REST API Server Docker Run"
|
|
echo "================================"
|
|
|
|
# Docker가 실행 중인지 확인
|
|
if ! command -v docker &> /dev/null; then
|
|
echo "[ERROR] Docker가 설치되지 않았습니다."
|
|
exit 1
|
|
fi
|
|
|
|
if ! docker info &> /dev/null; then
|
|
echo "[ERROR] Docker 데몬이 실행되지 않았습니다. Docker를 시작해주세요."
|
|
exit 1
|
|
fi
|
|
|
|
# 기존 컨테이너 중지 및 제거
|
|
echo "[INFO] 기존 컨테이너 정리 중..."
|
|
docker stop restapi-server 2>/dev/null || true
|
|
docker rm restapi-server 2>/dev/null || true
|
|
|
|
# 컨테이너 실행
|
|
echo "[INFO] REST API 서버 컨테이너 시작 중..."
|
|
if docker run -d \
|
|
--name restapi-server \
|
|
--restart unless-stopped \
|
|
-p 5577:5577 \
|
|
-e NODE_ENV=production \
|
|
-e DB_HOST=39.117.244.52 \
|
|
-e DB_PORT=11521 \
|
|
-e DB_DATABASE=XE \
|
|
-e DB_USERNAME=wace \
|
|
-e DB_PASSWORD=wace0909!! \
|
|
-e PORT=5577 \
|
|
restapi-server:latest; then
|
|
|
|
echo "[SUCCESS] 컨테이너가 성공적으로 시작되었습니다!"
|
|
echo ""
|
|
echo "서버 정보:"
|
|
echo " URL: http://localhost:5577"
|
|
echo " Health Check: http://localhost:5577/api/health"
|
|
echo " Container: restapi-server"
|
|
echo ""
|
|
echo "컨테이너 관리:"
|
|
echo " 로그 보기: docker logs -f restapi-server"
|
|
echo " 중지: docker stop restapi-server"
|
|
echo " 재시작: docker restart restapi-server"
|
|
echo ""
|
|
|
|
# 잠시 후 헬스체크
|
|
echo "[INFO] 서버 시작 대기 중... (10초)"
|
|
sleep 10
|
|
|
|
echo "[INFO] 헬스체크 수행 중..."
|
|
if curl -s http://localhost:5577/api/health > /dev/null 2>&1; then
|
|
echo "[SUCCESS] 서버가 정상적으로 실행 중입니다!"
|
|
else
|
|
echo "[WARNING] 서버가 아직 시작 중일 수 있습니다. 잠시 후 다시 확인해주세요."
|
|
fi
|
|
else
|
|
echo "[ERROR] 컨테이너 시작 실패!"
|
|
exit 1
|
|
fi
|