chore: docker-compose.yaml 수정 #17
This file contains 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: Docker CI/CD Pipeline | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- develop | |
jobs: | |
build-and-push: | |
name: 도커 이미지화 | |
runs-on: ubuntu-latest | |
steps: | |
- name: 리포지토리 코드 체크아웃 | |
uses: actions/checkout@v3 | |
- name: Docker Buildx 설정 | |
uses: docker/setup-buildx-action@v2 | |
- name: Docker Hub 로그인 | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKER_HUB_USERNAME }} | |
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | |
- name: Docker 이미지 빌드 및 푸시 | |
uses: docker/build-push-action@v4 | |
with: | |
context: ./ | |
file: ./Dockerfile.product | |
push: true | |
tags: ${{ secrets.DOCKER_HUB_USERNAME }}/nestjs-app:${{ github.sha }} | |
deploy: | |
name: 서버 배포 | |
needs: build-and-push | |
runs-on: ubuntu-latest | |
steps: | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v2 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws-region: ${{ secrets.AWS_REGION }} | |
- name: 서버 배포 및 상태 확인 | |
uses: appleboy/ssh-action@master | |
with: | |
host: ${{ secrets.SERVER_HOST }} | |
username: ${{ secrets.SERVER_USER }} | |
key: ${{ secrets.SSH_PRIVATE_KEY }} | |
script: | | |
cd /home/ubuntu | |
echo "${{ secrets.ALL_ENV_VARS }}" | jq -r 'to_entries | .[] | "\(.key)=\(.value)"' > /home/ubuntu/.env | |
echo "=== .env 파일 내용 확인 ===" | |
cat /home/ubuntu/.env || echo "Failed to create .env file" | |
echo "=== 기존 Docker Compose 컨테이너 종료 ===" | |
docker-compose --env-file /home/ubuntu/.env down | |
echo "=== 최신 Docker 이미지 Pull ===" | |
docker pull ${{ secrets.DOCKER_HUB_USERNAME }}/nestjs-app:latest | |
echo "=== Docker Compose 컨테이너 실행 ===" | |
docker-compose --env-file /home/ubuntu/.env up -d --remove-orphans | |
echo "=== 사용하지 않는 Docker 이미지 정리 ===" | |
docker image prune -f | |
echo "=== Docker 컨테이너 상태 ===" | |
sudo docker-compose ps |