@@ -38,33 +38,46 @@ jobs:
3838 steps :
3939 - name : Deploy to frontend server
4040 env :
41- SSH_PRIVATE_KEY : ${{ secrets.FRONTEND_SSH_KEY }}
41+ SSH_PRIVATE_KEY : ${{ secrets.SSH_PRIVATE_KEY }}
4242 SERVER_HOST : ${{ secrets.FRONTEND_SERVER_HOST }}
4343 SERVER_USER : ${{ secrets.FRONTEND_SERVER_USER }}
44+ NCP_REGISTRY_URL : ${{ secrets.NCP_REGISTRY_URL }}
45+ NCP_REGISTRY_USERNAME : ${{ secrets.NCP_REGISTRY_USERNAME }}
46+ NCP_REGISTRY_PASSWORD : ${{ secrets.NCP_REGISTRY_PASSWORD }}
47+ IMAGE_TAG : ${{ github.sha }}
4448 run : |
4549 # SSH 키 설정
4650 mkdir -p ~/.ssh
4751 echo "$SSH_PRIVATE_KEY" > ~/.ssh/deploy_key
4852 chmod 600 ~/.ssh/deploy_key
4953 ssh-keyscan -H $SERVER_HOST >> ~/.ssh/known_hosts
5054
51- # 프론트엔드 서버에서 빌드 및 배포
52- ssh -i ~/.ssh/deploy_key $SERVER_USER@$SERVER_HOST << 'EOF'
53- cd /app/web10-beastcamp
54-
55- # 최신 코드 가져오기
56- git fetch origin main
57- git reset --hard origin/main
58-
59- # frontend 서비스 재배포
60- cd frontend
61- docker-compose build
62- docker-compose up -d
63-
64- # 이전 이미지 정리
55+ # 프론트엔드 서버에 이미지 pull 및 배포
56+ ssh -i ~/.ssh/deploy_key $SERVER_USER@$SERVER_HOST << EOF
57+ # NCP Container Registry 로그인
58+ echo "$NCP_REGISTRY_PASSWORD" | docker login $NCP_REGISTRY_URL -u $NCP_REGISTRY_USERNAME --password-stdin
59+
60+ # CI에서 빌드된 이미지 pull
61+ docker pull $NCP_REGISTRY_URL/beastcamp-frontend:$IMAGE_TAG
62+
63+ # 기존 컨테이너 중지 및 삭제
64+ docker stop frontend 2>/dev/null || true
65+ docker rm frontend 2>/dev/null || true
66+
67+ # 새 컨테이너 실행
68+ docker run -d \
69+ --name frontend \
70+ -p 80:3000 \
71+ --restart unless-stopped \
72+ -e NODE_ENV=production \
73+ -e NEXT_PUBLIC_API_URL=http://localhost/api \
74+ -e NEXT_PUBLIC_API_MODE=mock \
75+ $NCP_REGISTRY_URL/beastcamp-frontend:$IMAGE_TAG
76+
77+ # 이전 이미지 정리 (현재 사용 중인 이미지 제외)
6578 docker image prune -f
6679
67- echo "✅ Frontend deployed successfully"
80+ echo "✅ Frontend deployed successfully from registry (image built in CI) "
6881 EOF
6982
7083 # Backend Servers Deploy (api-server + ticket-server)
7689 steps :
7790 - name : Deploy to backend server
7891 env :
79- SSH_PRIVATE_KEY : ${{ secrets.BACKEND_SSH_KEY }}
92+ SSH_PRIVATE_KEY : ${{ secrets.SSH_PRIVATE_KEY }}
8093 SERVER_HOST : ${{ secrets.BACKEND_SERVER_HOST }}
8194 SERVER_USER : ${{ secrets.BACKEND_SERVER_USER }}
8295 API_SERVER_CHANGED : ${{ needs.detect-changes.outputs.api_server_changed }}
@@ -126,7 +139,7 @@ jobs:
126139 steps :
127140 - name : Deploy to queue server
128141 env :
129- SSH_PRIVATE_KEY : ${{ secrets.QUEUE_SSH_KEY }}
142+ SSH_PRIVATE_KEY : ${{ secrets.SSH_PRIVATE_KEY }}
130143 SERVER_HOST : ${{ secrets.QUEUE_SERVER_HOST }}
131144 SERVER_USER : ${{ secrets.QUEUE_SERVER_USER }}
132145 run : |
0 commit comments