http4k-apache-graalvm.dockerfile 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. FROM gradle:7.6-jdk19 as gradle
  2. USER root
  3. WORKDIR /http4k
  4. COPY build.gradle build.gradle
  5. COPY settings.gradle settings.gradle
  6. COPY apache apache
  7. COPY core core
  8. COPY core-jdbc core-jdbc
  9. COPY core-pgclient core-pgclient
  10. COPY apache-graalvm apache-graalvm
  11. RUN gradle --quiet --no-daemon apache-graalvm:shadowJar
  12. FROM ghcr.io/graalvm/graalvm-ce:ol7-java17-22.3.0 as graalvm
  13. RUN gu install native-image
  14. COPY --from=gradle /http4k/core/src/main/resources/* /home/app/http4k-apache-graalvm/
  15. COPY --from=gradle /http4k/apache-graalvm/build/libs/http4k-benchmark.jar /home/app/http4k-apache-graalvm/
  16. COPY --from=gradle /http4k/apache-graalvm/config/*.json /home/app/http4k-apache-graalvm/
  17. WORKDIR /home/app/http4k-apache-graalvm
  18. RUN native-image \
  19. -H:ReflectionConfigurationFiles=reflect-config.json \
  20. -H:ResourceConfigurationFiles=resource-config.json \
  21. --initialize-at-build-time="org.slf4j.LoggerFactory,org.slf4j.simple.SimpleLogger,org.slf4j.impl.StaticLoggerBinder" \
  22. --no-fallback -cp http4k-benchmark.jar http4k.Http4kGraalVMBenchmarkServerKt
  23. FROM frolvlad/alpine-glibc:glibc-2.34
  24. RUN apk update && apk add libstdc++
  25. EXPOSE 9000
  26. COPY --from=graalvm /home/app/http4k-apache-graalvm/http4k.http4kgraalvmbenchmarkserverkt /app/http4k-apache-graalvm
  27. ENTRYPOINT ["/app/http4k-apache-graalvm"]