Skip to content

Commit dd4fac6

Browse files
✨ fix : Dockerfile 원래대로 수정 후, Github Actions Docker 이미지 캐싱 적용
1 parent 1b4306a commit dd4fac6

File tree

2 files changed

+20
-42
lines changed

2 files changed

+20
-42
lines changed

.github/workflows/ci-cd-main.yml

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,21 @@ jobs:
1111

1212
steps:
1313
- name: Checkout code
14-
uses: actions/checkout@v3 # 최신 버전 사용
14+
uses: actions/checkout@v3
1515

16-
# 캐싱 추가
17-
- name: Cache Gradle
16+
- name: Set up Docker Buildx
17+
uses: docker/setup-buildx-action@v2
18+
19+
- name: Cache Docker layers
1820
uses: actions/cache@v3
1921
with:
20-
path: |
21-
~/.gradle/caches
22-
~/.gradle/wrapper
23-
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
22+
path: /tmp/.buildx-cache
23+
key: ${{ runner.os }}-buildx-${{ github.sha }}
2424
restore-keys: |
25-
${{ runner.os }}-gradle-
26-
27-
- name: Set up Docker Buildx
28-
uses: docker/setup-buildx-action@v2 # 최신 버전 사용
25+
${{ runner.os }}-buildx-
2926
3027
- name: Log in to Google Cloud
31-
uses: google-github-actions/auth@v1 # 최신 버전 사용
28+
uses: google-github-actions/auth@v1
3229
with:
3330
credentials_json: ${{ secrets.GCP_CREDENTIALS }}
3431

@@ -37,7 +34,10 @@ jobs:
3734

3835
- name: Build and push Docker image
3936
run: |
40-
docker buildx build --push \
37+
docker buildx build \
38+
--cache-from=type=local,src=/tmp/.buildx-cache \
39+
--cache-to=type=local,dest=/tmp/.buildx-cache,mode=min \
40+
--push \
4141
--tag asia-northeast3-docker.pkg.dev/symbolic-yen-441710-h6/practice-main/kafka-user:${{ github.sha }} .
4242
4343
deploy:
@@ -46,7 +46,7 @@ jobs:
4646

4747
steps:
4848
- name: Checkout deployment repo
49-
uses: actions/checkout@v3 # 최신 버전 사용
49+
uses: actions/checkout@v3
5050
with:
5151
repository: kafka-practice/kafka-manifest
5252
path: manifests

Dockerfile

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,25 @@
11
# builder image
22
FROM amazoncorretto:17-al2-jdk AS builder
33

4-
# 작업 디렉토리 생성
54
RUN mkdir /kafka-user
65
WORKDIR /kafka-user
76

8-
# Gradle Wrapper 및 설정 파일 복사
9-
COPY gradlew .
10-
COPY gradle ./gradle
11-
COPY build.gradle settings.gradle ./
7+
COPY . .
128

13-
# Gradle 의존성 캐시 적용
14-
RUN ./gradlew dependencies || return 0
15-
16-
## 소스 코드 복사
17-
#COPY . .
18-
19-
# 소스 코드 복사 (자주 변경되는 파일)
20-
COPY src ./src
21-
22-
# Gradle 실행 권한 추가
239
RUN chmod +x gradlew
24-
25-
# Layered JAR 생성 및 레이어 추출
26-
RUN ./gradlew bootJar && \
27-
java -Djarmode=layertools -jar build/libs/kafka-user-*.jar extract
10+
RUN ./gradlew clean bootJar
2811

2912
# runtime image
3013
FROM amazoncorretto:17.0.12-al2
3114

32-
# 환경 변수 설정
3315
ENV TZ=Asia/Seoul
3416
ENV PROFILE=${PROFILE}
3517

36-
# 작업 디렉토리 생성
3718
RUN mkdir /kafka-user
3819
WORKDIR /kafka-user
3920

40-
# 레이어별로 파일 복사
41-
COPY --from=builder /kafka-user/dependencies/ ./dependencies/
42-
COPY --from=builder /kafka-user/spring-boot-loader/ ./spring-boot-loader/
43-
COPY --from=builder /kafka-user/snapshot-dependencies/ ./snapshot-dependencies/
44-
COPY --from=builder /kafka-user/application/ ./application/
21+
COPY --from=builder /kafka-user/build/libs/kafka-user-* /kafka-user/app.jar
4522

46-
# 애플리케이션 실행
47-
CMD ["java", "-Dspring.profiles.active=${PROFILE}", "-Duser.timezone=Asia/Seoul", "org.springframework.boot.loader.JarLauncher"]
23+
CMD ["sh", "-c", " \
24+
java -Dspring.profiles.active=${PROFILE} \
25+
-jar /kafka-user/app.jar"]

0 commit comments

Comments
 (0)