Merge pull request #186 from GDGoC2026-TripleS-Project/develop #118
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Node.js SCP Deploy | |
| on: | |
| push: | |
| branches: ["main"] | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| # 1. Docker Hub 로그인 | |
| - name: Login to Docker Hub | |
| uses: docker/login-action@v3 | |
| with: | |
| username: ${{ secrets.DOCKERHUB_USERNAME }} | |
| password: ${{ secrets.DOCKERHUB_TOKEN }} | |
| # 2. 이미지 빌드 및 Push | |
| - name: Build and push | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: . | |
| push: true | |
| tags: ${{ secrets.DOCKERHUB_USERNAME }}/node-backend:latest | |
| # 3. 수정한 설정 파일들을 EC2로 전송 | |
| - name: Copy config files to EC2 | |
| uses: appleboy/scp-action@v0.1.7 | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_KEY }} | |
| # docker-compose.yml과 nginx 폴더를 모두 보냅니다. | |
| source: "docker-compose.yml,nginx/nginx.conf" | |
| target: "/home/ubuntu/deploy" | |
| # 4. EC2에서 이미지 로드 및 실행 | |
| - name: Deploy on EC2 | |
| uses: appleboy/ssh-action@v1.0.3 | |
| with: | |
| host: ${{ secrets.EC2_HOST }} | |
| username: ${{ secrets.EC2_USER }} | |
| key: ${{ secrets.EC2_KEY }} | |
| script: | | |
| cd /home/ubuntu/deploy | |
| # Docker Hub에서 새 이미지 pull | |
| sudo docker-compose pull | |
| # 컨테이너 재시작 (변경사항이 있는 서비스만 새로 띄움) | |
| sudo docker-compose up -d | |
| # 오래된 이미지들 정리 | |
| sudo docker image prune -f |