/etc/timezone \ # apk del tzdata #RUN mkdir /opt/app #COPY --from=builder build/libs/*.jar /opt/app/application.jar #ENTRYPOINT ["java", "-jar", "/opt/app/application.jar"] ## corretto 에서 JRE만 사용 FROM amazoncorretto:21-alpine as corretto-jdk # required for strip-debug to work RUN apk add --no-cache binutils # Build small JRE image RUN jlink \ --add-modules ALL-MODULE-PATH \ --strip-debug \ --no-man-pages \ --no-header-files \ --compress=2 \ --output /jre ## alpine 기본 이미지에 JRE만 옮겨서 사용 FROM alpine:latest ENV JAVA_HOME=/jre ENV PATH="${JAVA_HOME}/bin:$"> /etc/timezone \ # apk del tzdata #RUN mkdir /opt/app #COPY --from=builder build/libs/*.jar /opt/app/application.jar #ENTRYPOINT ["java", "-jar", "/opt/app/application.jar"] ## corretto 에서 JRE만 사용 FROM amazoncorretto:21-alpine as corretto-jdk # required for strip-debug to work RUN apk add --no-cache binutils # Build small JRE image RUN jlink \ --add-modules ALL-MODULE-PATH \ --strip-debug \ --no-man-pages \ --no-header-files \ --compress=2 \ --output /jre ## alpine 기본 이미지에 JRE만 옮겨서 사용 FROM alpine:latest ENV JAVA_HOME=/jre ENV PATH="${JAVA_HOME}/bin:$"> /etc/timezone \ # apk del tzdata #RUN mkdir /opt/app #COPY --from=builder build/libs/*.jar /opt/app/application.jar #ENTRYPOINT ["java", "-jar", "/opt/app/application.jar"] ## corretto 에서 JRE만 사용 FROM amazoncorretto:21-alpine as corretto-jdk # required for strip-debug to work RUN apk add --no-cache binutils # Build small JRE image RUN jlink \ --add-modules ALL-MODULE-PATH \ --strip-debug \ --no-man-pages \ --no-header-files \ --compress=2 \ --output /jre ## alpine 기본 이미지에 JRE만 옮겨서 사용 FROM alpine:latest ENV JAVA_HOME=/jre ENV PATH="${JAVA_HOME}/bin:$">
## Builder
FROM amazoncorretto:21-alpine AS builder

COPY gradlew .
COPY settings.gradle.kts .
COPY build.gradle.kts .
COPY gradle.properties .
COPY gradle gradle
COPY src src
RUN ./gradlew clean buildfatjar

## OpenJdk:17 이미지 : JRE가 오류가 생겼을 시 대체사항
#FROM openjdk:17-alpine
#RUN apk --no-cache add tzdata && \\
#	cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime && \\
#	echo "Asia/Seoul" > /etc/timezone \\
#	apk del tzdata
#RUN mkdir /opt/app
#COPY --from=builder build/libs/*.jar /opt/app/application.jar
#ENTRYPOINT ["java", "-jar", "/opt/app/application.jar"]

## corretto 에서 JRE만 사용
FROM amazoncorretto:21-alpine as corretto-jdk

# required for strip-debug to work
RUN apk add --no-cache binutils

# Build small JRE image
RUN jlink \\
         --add-modules ALL-MODULE-PATH \\
         --strip-debug \\
         --no-man-pages \\
         --no-header-files \\
         --compress=2 \\
         --output /jre

## alpine 기본 이미지에 JRE만 옮겨서 사용
FROM alpine:latest
ENV JAVA_HOME=/jre
ENV PATH="${JAVA_HOME}/bin:${PATH}"

## 기본 UTC 이므로 한국시간으로 변경
RUN apk --no-cache add tzdata && \\
	cp /usr/share/zoneinfo/Asia/Seoul /etc/localtime && \\
	echo "Asia/Seoul" > /etc/timezone \\
	apk del tzdata

COPY --from=corretto-jdk /jre $JAVA_HOME
COPY --from=builder build/libs/*.jar /opt/app/application.jar

ENTRYPOINT ["java", "-jar", "/opt/app/application.jar"]