Created by
Kenneth Jorgensen
| FROM openjdk:11-jdk-buster as build
WORKDIR /project
# Set up and cache Gradle itself.
COPY gradle /project/gradle
COPY gradlew /project/
RUN echo "org.gradle.daemon=false" > /project/gradle.properties
RUN ./gradlew
# Set up and cache dependencies.
COPY build.gradle settings.gradle /project/
RUN ./gradlew init
# Actual build process.
COPY src /project/src
RUN ./gradlew distZip
# Extract distribution.
RUN unzip build/distributions/*.zip -d /project/app
RUN mv /minerva/app/*/* /project/app
FROM openjdk:11-jre-slim
WORKDIR /project/app
COPY --from=build /project/app .
EXPOSE 8080
ENTRYPOINT ["./bin/project"]
|
This build will separate the Gradle actions into distinct steps to maximise the use of cached layers.