Skip to content

Merge pull request #150 from starlight-dari/main #166

Merge pull request #150 from starlight-dari/main

Merge pull request #150 from starlight-dari/main #166

Workflow file for this run

name: React 배포
on:
push:
branches: [ "deploy" ]
jobs:
deploy:
runs-on: ubuntu-latest # 작업이 실행될 환경
steps:
- name: 체크아웃
uses: actions/checkout@v3
- name: make .env
run: |
touch .env
echo "${{ secrets.ENV }}" > .env
echo "✅ .env 파일 생성 완료"
- name: Check .env content
run: |
echo "✅ .env 파일 내용:"
cat .env
- name: 도커허브에 로그인
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USER_NAME }}
password: ${{ secrets.DOCKER_USER_PW }}
- name: 이미지 빌드
run: docker build -t ${{ secrets.DOCKER_USER_NAME }}/${{ secrets.DOCKER_IMAGE_NAME }}-fe .
- name: 도커허브에 이미지 푸시
run: docker push ${{ secrets.DOCKER_USER_NAME }}/${{ secrets.DOCKER_IMAGE_NAME }}-fe
- name: AWS EC2에 ssh 접속 후 배포
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.AWS_IP }}
port: 22
username: ubuntu
key: ${{ secrets.AWS_KEY }}
script: |
echo "AWS 연결"
# 기존 프론트엔드 컨테이너 중지 및 삭제
docker stop frontend || true
docker rm frontend || true
# 기존 프론트엔드 이미지 삭제
docker rmi ${{ secrets.DOCKER_USER_NAME }}/${{ secrets.DOCKER_IMAGE_NAME }}-fe || true
docker pull ${{ secrets.DOCKER_USER_NAME }}/${{ secrets.DOCKER_IMAGE_NAME }}-fe
# docker-compose에서 frontend 컨테이너만 재시작
docker-compose up -d --force-recreate --build frontend
# 상태 확인
docker ps -a
docker logs frontend