Skip to content

Commit 6c28950

Browse files
committed
CI/CD: 운영과 개발 서버 분리하여 컨테이너 실행
1 parent d2dd5e2 commit 6c28950

File tree

1 file changed

+27
-15
lines changed

1 file changed

+27
-15
lines changed

.github/workflows/gradle.yml

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ name: CI/CD
22

33
on:
44
push:
5-
branches: [ "main" ]
5+
branches: [ "main", "dev" ]
66
pull_request:
7-
branches: [ "main" ]
7+
branches: [ "main", "dev" ]
88

99
jobs:
1010
build:
@@ -66,20 +66,23 @@ jobs:
6666
- name: Build with Gradle Wrapper
6767
run: ./gradlew build
6868

69-
# Docker 이미지 빌드
70-
- name: docker image build
71-
run: docker build --build-arg TZ=Asia/Seoul -t ${{ secrets.DOCKERHUB_USERNAME }}/mercury-server .
72-
7369
# DockerHub 로그인
7470
- name: docker login
7571
uses: docker/login-action@v2
7672
with:
7773
username: ${{ secrets.DOCKERHUB_USERNAME }}
7874
password: ${{ secrets.DOCKERHUB_PASSWORD }}
7975

80-
# DockerHub 이미지 푸시
81-
- name: docker Hub push
82-
run: docker push ${{ secrets.DOCKERHUB_USERNAME }}/mercury-server
76+
# 브랜치별 Docker 이미지 빌드 & 푸쉬
77+
- name: Build Docker Image & Push DockerHub
78+
run: |
79+
if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then
80+
docker build --build-arg TZ=Asia/Seoul --build-arg SPRING_PROFILES_ACTIVE=prod -t ${{ secrets.DOCKERHUB_USERNAME }}/mercury-server:prod .
81+
docker push ${{ secrets.DOCKERHUB_USERNAME }}/mercury-server:prod
82+
elif [[ "${{ github.ref }}" == "refs/heads/develop" ]]; then
83+
docker build --build-arg TZ=Asia/Seoul --build-arg SPRING_PROFILES_ACTIVE=dev -t ${{ secrets.DOCKERHUB_USERNAME }}/mercury-server:dev .
84+
docker push ${{ secrets.DOCKERHUB_USERNAME }}/mercury-server:dev
85+
fi
8386
8487
deploy:
8588
needs: build
@@ -94,9 +97,18 @@ jobs:
9497
username: ${{ secrets.EC2_USERNAME }}
9598
key: ${{ secrets.EC2_SSH_KEY }}
9699
script: |
97-
docker pull ${{ secrets.DOCKERHUB_USERNAME }}/mercury-server
98-
docker stop $(docker ps -q) || true
99-
docker rm $(docker ps -a -q) || true
100-
# 사용하지 않는 이미지 정리
101-
docker image prune -f
102-
docker run -d -e TZ=Asia/Seoul -p 8080:8080 ${{ secrets.DOCKERHUB_USERNAME }}/mercury-server
100+
if [[ "${{ github.ref }}" == "refs/heads/main" ]]; then
101+
# 운영 서버 배포 (8080 포트)
102+
docker pull ${{ secrets.DOCKERHUB_USERNAME }}/mercury-server:prod
103+
docker stop mercury-prod || true
104+
docker rm mercury-prod || true
105+
docker image prune -f || true
106+
docker run -d --name mercury-prod -e SPRING_PROFILES_ACTIVE=prod -e TZ=Asia/Seoul -p 8080:8080 ${{ secrets.DOCKERHUB_USERNAME }}/mercury-server:prod
107+
elif [[ "${{ github.ref }}" == "refs/heads/develop" ]]; then
108+
# 개발 서버 배포 (EC2의 8081 포트 → 컨테이너의 8080 포트)
109+
docker pull ${{ secrets.DOCKERHUB_USERNAME }}/mercury-server:dev
110+
docker stop mercury-dev || true
111+
docker rm mercury-dev || true
112+
docker image prune -f || true
113+
docker run -d --name mercury-dev -e SPRING_PROFILES_ACTIVE=dev -e TZ=Asia/Seoul -p 8081:8080 ${{ secrets.DOCKERHUB_USERNAME }}/mercury-server:dev
114+
fi

0 commit comments

Comments
 (0)