Skip to content

Merge pull request #186 from GDGoC2026-TripleS-Project/develop #118

Merge pull request #186 from GDGoC2026-TripleS-Project/develop

Merge pull request #186 from GDGoC2026-TripleS-Project/develop #118

Workflow file for this run

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