FROM ghcr.io/graalvm/native-image:latest as build WORKDIR /app/ COPY . /app/ RUN --mount=type=cache,target=/root/.gradle/caches/ \ ./gradlew shadowJar RUN jlink \ --add-modules java.base,java.logging,java.sql,java.management,java.xml,java.naming,java.desktop,jdk.crypto.ec \ --strip-debug \ --no-man-pages \ --no-header-files \ --compress=2 \ --output /javaruntime FROM debian:stable-slim RUN --mount=type=cache,target=/var/cache/apt/ \ apt-get update && \ apt-get install -y --no-install-recommends \ curl \ && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* ENV JAVA_HOME=/opt/java/openjdk ENV PATH "${JAVA_HOME}/bin:${PATH}" COPY --from=build /javaruntime $JAVA_HOME WORKDIR /app/ COPY docker-healthcheck.sh / COPY --from=build /app/build/libs/piped-1.0-all.jar /app/piped.jar COPY VERSION . EXPOSE 8080 HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 CMD /docker-healthcheck.sh CMD java -jar /app/piped.jar