Snippets

Kenneth Jorgensen Optimised Gradle build on Docker

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"]

Comments (1)

  1. Kenneth Jorgensen

    This build will separate the Gradle actions into distinct steps to maximise the use of cached layers.

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.