Skip to content

Commit 5c7222a

Browse files
authored
Infra: dev 브랜치에 배포 자동화 워크플로우 반영
* Infra: 자동화 배포 워크 플로우 파일 반영 - 기존 파일 이름 : /workflows/deploy.yml -> 변경 : /workflows/backend-cd.yml - jobs.deploy 작업 일부 수정 * Fix: Dockerfile 일부 설정 변경 - 애플리케이션 빌드 시, 테스트 생략 - 실행 스테이지 -> .env 파일을 컨테이너 안에 복사하는 과정 추가
1 parent e6b5fc6 commit 5c7222a

File tree

3 files changed

+28
-10
lines changed

3 files changed

+28
-10
lines changed

.github/workflows/deploy.yml renamed to .github/workflows/backend-cd.yml

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: deploy
1+
name: backend-cd
22
on:
33
push:
44
paths:
@@ -61,7 +61,7 @@ jobs:
6161
- name: set lower case owner name
6262
run: |
6363
echo "OWNER_LC=${OWNER,,}" >> ${GITHUB_ENV}
64-
64+
6565
6666
- name: 빌드 앤 푸시
6767
uses: docker/build-push-action@v3
@@ -71,12 +71,18 @@ jobs:
7171
tags: |
7272
ghcr.io/${{ env.OWNER_LC }}/${{ env.DOCKER_IMAGE_NAME }}:${{ needs.makeTagAndRelease.outputs.tag_name }},
7373
ghcr.io/${{ env.OWNER_LC }}/${{ env.DOCKER_IMAGE_NAME }}:latest
74-
75-
74+
75+
7676
deploy:
7777
runs-on: ubuntu-latest
7878
needs: [ buildImageAndPush ]
79+
env:
80+
OWNER: ${{ github.repository_owner }}
7981
steps:
82+
- name: set lower case owner name
83+
run: |
84+
echo "OWNER_LC=${OWNER,,}" >> ${GITHUB_ENV}
85+
8086
- name: AWS SSM Send-Command
8187
uses: peterkimzz/aws-ssm-send-command@master
8288
id: ssm
@@ -88,7 +94,18 @@ jobs:
8894
working-directory: /
8995
comment: Deploy
9096
command: |
97+
# 0. env 변수 확인
98+
echo "OWNER_LC = ${{ env.OWNER_LC }}"
99+
100+
# 1. 최신 이미지 pull
91101
docker pull ghcr.io/${{ env.OWNER_LC }}/catfe-backend:latest
102+
103+
# 2. 기존 컨테이너 종료 및 제거
92104
docker stop catfe-backend 2>/dev/null
93105
docker rm catfe-backend 2>/dev/null
94-
docker run -d --name catfe-backend -p 8080:8080 ghcr.io/${{ env.OWNER_LC }}/catfe-backend:latest
106+
107+
# 3. 새로운 컨테이너 실행
108+
docker run -d --name catfe-backend -p 8080:8080 ghcr.io/${{ env.OWNER_LC }}/catfe-backend:latest
109+
110+
# 4. dangling 이미지 삭제
111+
docker rmi $(docker images -f "dangling=true" -q)

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ out/
4040
db_dev.mv.db
4141
db_dev.trace.db
4242
.env
43+
.env.*
4344

4445
### Terraform ###
4546
/infra/terraform/.terraform

Dockerfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,14 @@ WORKDIR /app
88
COPY build.gradle.kts .
99
COPY settings.gradle.kts .
1010

11+
# 종속성 설치
1112
RUN gradle dependencies --no-daemon
1213

1314
# 소스코드 복사
1415
COPY src src
1516

16-
# .env 복사
17-
COPY .env .env
18-
1917
# 애플리케이션 빌드
20-
RUN gradle build --no-daemon
18+
RUN gradle build --no-daemon -x test
2119

2220
# 두 번째 스테이지 : 실행 스테이지
2321
FROM container-registry.oracle.com/graalvm/jdk:21
@@ -26,7 +24,9 @@ WORKDIR /app
2624

2725
# 첫 번째 스테이지에서 빌드된 JAR 파일 복사
2826
COPY --from=builder /app/build/libs/*.jar app.jar
29-
COPY --from=builder /app/.env .env
27+
28+
# 빌드 컨텍스트의 .env(backend-cd 작업에서 빌드된 .env)를 컨테이너 안으로 복사
29+
COPY .env .env
3030

3131
# 실행할 JAR 파일 지정
3232
ENTRYPOINT ["java", "-Dspring.profiles.active=prod", "-jar", "app.jar"]

0 commit comments

Comments
 (0)