1313 runs-on : ubuntu-latest
1414 if : ${{ github.event.workflow_run.conclusion == 'success' }}
1515 env :
16- IMAGE_NAME : mov-api
16+ SPRING_IMAGE_NAME : mov-api
17+ FASTAPI_IMAGE_NAME : mov-fastapi
1718 steps :
1819 - name : Deploy to EC2
1920 uses : appleboy/ssh-action@master
@@ -24,27 +25,41 @@ jobs:
2425 script : |
2526 # 環境 변수 설정
2627 DOCKER_USERNAME=${{ secrets.DOCKERHUB_USERNAME }}
27- IMAGE_NAME=${{ env.IMAGE_NAME }}
28- CONTAINER_NAME=mov-api
28+ SPRING_IMAGE_NAME=${{ env.SPRING_IMAGE_NAME }}
29+ FASTAPI_IMAGE_NAME=${{ env.FASTAPI_IMAGE_NAME }}
30+ SPRING_CONTAINER_NAME=mov-api
31+ FASTAPI_CONTAINER_NAME=mov-fastapi
2932 ENV_FILE_PATH=/home/${{ secrets.EC2_USERNAME }}/.env
3033
31- echo "CI/CD: [1/5 ] Creating .env file..."
34+ echo "CI/CD: [1/8 ] Creating .env file..."
3235 echo "${{ secrets.ENV_FILE }}" > $ENV_FILE_PATH
3336
34- echo "CI/CD: [2/5 ] Pulling latest Docker image..."
35- docker pull $DOCKER_USERNAME/$IMAGE_NAME :latest
37+ echo "CI/CD: [2/8 ] Pulling latest Spring Boot Docker image..."
38+ docker pull $DOCKER_USERNAME/$SPRING_IMAGE_NAME :latest
3639
37- echo "CI/CD: [3/5 ] Stopping and removing existing container..."
38- docker stop $CONTAINER_NAME || true
39- docker rm $CONTAINER_NAME || true
40+ echo "CI/CD: [3/8 ] Stopping and removing existing Spring Boot container..."
41+ docker stop $SPRING_CONTAINER_NAME || true
42+ docker rm $SPRING_CONTAINER_NAME || true
4043
41- echo "CI/CD: [4/5 ] Starting new container..."
42- docker run -d --name $CONTAINER_NAME \
44+ echo "CI/CD: [4/8 ] Starting new Spring Boot container..."
45+ docker run -d --name $SPRING_CONTAINER_NAME \
4346 --env-file $ENV_FILE_PATH \
4447 -p 8080:8080 \
45- $DOCKER_USERNAME/$IMAGE_NAME :latest
48+ $DOCKER_USERNAME/$SPRING_IMAGE_NAME :latest
4649
47- echo "CI/CD: [5/5] Cleaning up unused images..."
50+ echo "CI/CD: [5/8] Pulling latest FastAPI Docker image..."
51+ docker pull $DOCKER_USERNAME/$FASTAPI_IMAGE_NAME:latest
52+
53+ echo "CI/CD: [6/8] Stopping and removing existing FastAPI container..."
54+ docker stop $FASTAPI_CONTAINER_NAME || true
55+ docker rm $FASTAPI_CONTAINER_NAME || true
56+
57+ echo "CI/CD: [7/8] Starting new FastAPI container..."
58+ docker run -d --name $FASTAPI_CONTAINER_NAME \
59+ -p 8000:8000 \
60+ $DOCKER_USERNAME/$FASTAPI_IMAGE_NAME:latest
61+
62+ echo "CI/CD: [8/8] Cleaning up unused images..."
4863 docker image prune -f
4964
5065 echo "CI/CD: Deployment complete."
0 commit comments