git action 설정
작성해둔 git action 내용을 확인하고 포스팅을 보면 된다.
git action: https://velog.io/@isacc7224/Git-action
name: Deploy to EC2
on:
push:
branches:
- master
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install dependencies and build
run: |
npm install
npm run build
- name: Deploy to EC2 (Using Domain)
uses: appleboy/scp-action@v0.1.4
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_KEY }}
source: "dist/*"
target: "/var/www/mynote"
- name: Restart Nginx
uses: appleboy/ssh-action@v0.1.10
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_KEY }}
script: |
sudo systemctl restart nginx
git에 푸시할때 git action ubuntu 환경에서 앱을 build 후 dist폴더를 ec2 인스턴스/var/www/mynote 경로에 전달해 배포함
scp 방법사용
- ${{ secrets.EC2_HOST }}: 내 도메인
- ${{ secrets.EC2_USER }}: ubuntu (접속 유저 이름)
- ${{ secrets.EC2_SSH_KEY }}: 인스턴스 pem키 내용
실행 중 폴더 접근 권한이 부족하다면 ec2 인스턴스에서 ubuntu 유저 mynote폴더에 대한 권한 부여
sudo chown -R ubuntu:ubuntu /var/www/mynote
sudo chmod -R 775 /var/www/mynote