99 runs-on : ubuntu-latest
1010
1111 steps :
12+ # 1. 레포지토리 체크아웃
1213 - name : Checkout repository
1314 uses : actions/checkout@v3
1415
16+ # 2. SSH 키 설정
1517 - name : Set up SSH private key
1618 run : |
1719 echo "${{ secrets.SSH_KEY }}" > private_key.pem
1820 chmod 600 private_key.pem
1921
22+ # 3. .env 파일 생성
2023 - name : Generate .env for Docker Compose
2124 run : |
2225 echo "AZURE_DB_USERNAME=${{ secrets.AZURE_DB_USERNAME }}" >> .env
@@ -29,14 +32,19 @@ jobs:
2932 echo "GITHUB_CLIENT_ID=${{ secrets.GITHUB_CLIENT_ID }}" >> .env
3033 echo "GITHUB_CLIENT_SECRET=${{ secrets.GITHUB_CLIENT_SECRET }}" >> .env
3134
35+ # 4. docker-compose.yml 업로드
3236 - name : Upload docker-compose.yml to Azure VM
3337 run : |
34- scp -i private_key.pem -o StrictHostKeyChecking=no docker-compose.yml ${{ secrets.AZURE_VM_USER }}@${{ secrets.AZURE_VM_HOST }}:/home/ubuntu/fossistant/docker-compose.yml
38+ scp -i private_key.pem -o StrictHostKeyChecking=no docker-compose.yml \
39+ ${{ secrets.AZURE_VM_USER }}@${{ secrets.AZURE_VM_HOST }}:/home/ubuntu/fossistant/docker-compose.yml
3540
41+ # 5. .env 업로드
3642 - name : Upload .env to Azure VM
3743 run : |
38- scp -i private_key.pem -o StrictHostKeyChecking=no .env ${{ secrets.AZURE_VM_USER }}@${{ secrets.AZURE_VM_HOST }}:/home/ubuntu/fossistant/.env
44+ scp -i private_key.pem -o StrictHostKeyChecking=no .env \
45+ ${{ secrets.AZURE_VM_USER }}@${{ secrets.AZURE_VM_HOST }}:/home/ubuntu/fossistant/.env
3946
47+ # 6. SSH로 접속하여 배포
4048 - name : SSH to Azure VM and Deploy
41494250 with :
@@ -46,10 +54,22 @@ jobs:
4654 port : 22
4755 script : |
4856 cd /home/ubuntu/fossistant
49- echo "✅ pulling latest image..."
50- docker compose pull
51- echo "🧹 stopping old containers..."
57+
58+ echo "🧼 Killing any process listening on port 6379..."
59+ # (선택 사항) Redis가 사용 중인 포트를 잡고 있는 프로세스 강제 종료
60+ sudo fuser -k 6379/tcp || true
61+
62+ echo "🧼 Forcibly removing existing containers (redis, fossistant) if they exist..."
63+ docker rm -f redis fossistant || true
64+
65+ echo "🧹 Stopping old containers and removing orphans..."
5266 docker compose down --remove-orphans || true
5367 docker compose rm -f || true
54- echo "🚀 starting new containers..."
68+
69+ echo "✅ Pulling latest images..."
70+ docker compose pull
71+
72+ echo "🚀 Starting new containers..."
5573 docker compose up -d --build
74+
75+ echo "🎉 Deployment complete! Containers are up and running."
0 commit comments