@@ -10,10 +10,6 @@ permissions:
1010 contents : read
1111
1212jobs :
13- # ─────────────────────────────────────────────
14- # 1) Build-and-Push-Image Job
15- # - Gradle 빌드 → Docker 이미지 빌드 → Docker Hub Push
16- # ─────────────────────────────────────────────
1713 build-and-push-image :
1814 name : Build & Push Docker Image
1915 runs-on : ubuntu-latest
4642 - name : Push Docker Image to Docker Hub
4743 run : docker push ${{ secrets.DOCKER_USERNAME }}/fossistant:latest
4844
49- # ─────────────────────────────────────────────
50- # 2) Deploy-with-Compose Job
51- # - “Build”가 끝나면 Azure VM에 SSH 접속 → Compose로 배포
52- # ─────────────────────────────────────────────
5345 deploy-with-compose :
5446 name : Deploy to Azure VM via Docker Compose
5547 runs-on : ubuntu-latest
@@ -72,17 +64,15 @@ jobs:
7264
7365 - name : Generate .env for Docker Compose
7466 run : |
75- cat <<EOF > .env
76- AZURE_DB_USERNAME=${{ secrets.AZURE_DB_USERNAME }}
77- AZURE_DB_PASSWORD=${{ secrets.AZURE_DB_PASSWORD }}
78- GEMINI_KEY=${{ secrets.GEMINI_KEY }}
79- GITHUB_TOKEN=${{ secrets.HUB_TOKEN }}
80- JWT_SECRET_KEY=${{ secrets.JWT_SECRET_KEY }}
81- JWT_ACCESS_TOKEN_TIME=${{ secrets.JWT_ACCESS_TOKEN_TIME }}
82- JWT_REFRESH_TOKEN_TIME=${{ secrets.JWT_REFRESH_TOKEN_TIME }}
83- GITHUB_CLIENT_ID=${{ secrets.CLIENT_ID }}
84- GITHUB_CLIENT_SECRET=${{ secrets.CLIENT_SECRET }}
85- EOF
67+ echo "AZURE_DB_USERNAME=${{ secrets.AZURE_DB_USERNAME }}" >> .env
68+ echo "AZURE_DB_PASSWORD=${{ secrets.AZURE_DB_PASSWORD }}" >> .env
69+ echo "GEMINI_KEY=${{ secrets.GEMINI_KEY }}" >> .env
70+ echo "GITHUB_TOKEN=${{ secrets.HUB_TOKEN }}" >> .env
71+ echo "JWT_SECRET_KEY=${{ secrets.JWT_SECRET_KEY }}" >> .env
72+ echo "JWT_ACCESS_TOKEN_TIME=${{ secrets.JWT_ACCESS_TOKEN_TIME }}" >> .env
73+ echo "JWT_REFRESH_TOKEN_TIME=${{ secrets.JWT_REFRESH_TOKEN_TIME }}" >> .env
74+ echo "GITHUB_CLIENT_ID=${{ secrets.CLIENT_ID }}" >> .env
75+ echo "GITHUB_CLIENT_SECRET=${{ secrets.CLIENT_SECRET }}" >> .env
8676
8777 - name : Upload docker-compose.yml to Azure VM
8878 run : |
10595 port : 22
10696 script : |
10797 set -eux
108-
10998 cd /home/ubuntu/fossistant
11099
111- # 1) 호스트에 시스템 Redis가 있다면 중지 (서비스 이름이 다를 수 있으니 상황에 맞게 수정)
112- echo "🛑 Stopping host's Redis service if running..."
100+ echo "🛑 Stopping Redis if running..."
113101 sudo systemctl stop redis-server || true
114102
115- # 2) 호스트 포트 6379를 점유한 모든 프로세스 강제 종료
116- echo "🧼 Killing any process listening on port 6379..."
103+ echo "🧼 Killing anything on port 6379..."
117104 sudo fuser -k 6379/tcp || true
118105
119- # 3) 기존 컨테이너 강제 제거
120- echo "🧼 Forcibly removing any existing containers named 'redis' or 'fossistant'..."
106+ echo "🧼 Removing old containers..."
121107 docker rm -f redis fossistant || true
122108
123- # 4) Compose로 띄웠던 컨테이너·네트워크 정리
124- echo "🧹 Stopping old containers and removing orphans..."
109+ echo "🧹 Stopping and cleaning old compose stack..."
125110 sudo docker compose down --remove-orphans || true
126111 sudo docker compose rm -f || true
127112
128- # 5) 최신 이미지 Pull
129- echo "✅ Pulling latest images from Docker Hub..."
113+ echo "✅ Pulling new image..."
130114 sudo docker compose pull
131115
132- # 6) 새 컨테이너 기동
133- echo "🚀 Starting new containers with Docker Compose..."
116+ echo "🚀 Deploying with Compose..."
134117 sudo docker compose up -d --build
135118
136- echo "🎉 Deployment complete! Current containers: "
119+ echo "🎉 Deployment complete!"
137120 docker ps
0 commit comments