diff --git a/backend/Dockerfile b/backend/Dockerfile index e18acc0..6e9545e 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,8 +1,27 @@ -FROM gradle:jdk17 +# DO NOT EDIT +# source: https://ktor.io/docs/docker.html#manual -WORKDIR /app -COPY --chown=gradle:gradle . . +# Stage 1: Cache Gradle dependencies +FROM gradle:jdk17 AS cache +RUN mkdir -p /home/gradle/cache_home +ENV GRADLE_USER_HOME=/home/gradle/cache_home +COPY build.gradle.* gradle.properties /home/gradle/app/ +COPY gradle /home/gradle/app/gradle +WORKDIR /home/gradle/app +RUN gradle dependencies --no-daemon -RUN gradle buildFatJar +# Stage 2: Build Application +FROM gradle:jdk17 AS build +COPY --from=cache /home/gradle/cache_home /home/gradle/.gradle +COPY --chown=gradle:gradle . /home/gradle/src +WORKDIR /home/gradle/src +# Build the fat JAR, Gradle also supports shadow +# and boot JAR by default. +RUN gradle buildFatJar --no-daemon -CMD ["gradle", "runFatJar"] +# Stage 3: Create the Runtime Image +FROM amazoncorretto:17 AS runtime +EXPOSE 8080 +RUN mkdir /app +COPY --from=build /home/gradle/src/build/libs/*.jar /app/antifed.jar +ENTRYPOINT ["java","-jar","/app/antifed.jar"]