Skip to content

Commit

Permalink
feat: 🚀 native image
Browse files Browse the repository at this point in the history
  • Loading branch information
OpenSrcerer committed Apr 13, 2024
1 parent f65f3a3 commit bacad44
Show file tree
Hide file tree
Showing 5 changed files with 82 additions and 70 deletions.
68 changes: 20 additions & 48 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,53 +1,25 @@
FROM gradle:8.4.0-jdk17-jammy AS BUILD
FROM ghcr.io/graalvm/graalvm-ce:ol8-java17-22.3.3 AS BUILD

WORKDIR /appbuild

COPY . .

RUN gradle build -Dquarkus.package.type=uber-jar --no-daemon

#FROM amazoncorretto:17-alpine as CORRETTO-DEPS
#
#WORKDIR /app
#
#COPY --from=build /appbuild/build/paddy-backend-runner.jar .
#
## Get modules list
#RUN unzip paddy-backend-runner.jar -d temp && \
# jdeps \
# --print-module-deps \
# --ignore-missing-deps \
# --recursive \
# --multi-release 17 \
# --class-path="./temp/BOOT-INF/lib/*" \
# --module-path="./temp/BOOT-INF/lib/*" \
# paddy-backend-runner.jar > modules.txt
#
#FROM amazoncorretto:17-alpine as CORRETTO-JDK
#
#WORKDIR /app
#
#COPY --from=corretto-deps /app/modules.txt .
#
## Output a custom jre built from the modules list
#RUN apk add --no-cache binutils && \
# jlink \
# --verbose \
# --add-modules "$(cat modules.txt)" \
# --strip-debug \
# --no-man-pages \
# --no-header-files \
# --compress=2 \
# --output /jre

FROM amazoncorretto:17-alpine as CORRETTO-JDK

#COPY --from=corretto-jdk /jre /app/jre
COPY --from=build /appbuild/build/paddy-backend-runner.jar /app/paddy-backend-runner.jar

WORKDIR /app

ARG DEBUG_OPT
ENV DEBUG_API_OPT=$DEBUG_OPT

CMD java $DEBUG_API_OPT -jar paddy-backend-runner.jar
RUN gu install native-image

RUN ./gradlew build --no-daemon -Dquarkus.package.type=native


FROM quay.io/quarkus/quarkus-micro-image:2.0 AS NATIVE

WORKDIR /work

COPY --from=BUILD /appbuild/* .

RUN chown 1001 /work \
&& chmod "g+rwX" /work \
&& chown 1001:root /work

EXPOSE 8080
USER 1001

CMD ["/work/quarkus-build/gen/paddy-backend-runner", "-Dquarkus.http.host=0.0.0.0"]
53 changes: 53 additions & 0 deletions Dockerfile.jvm
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
FROM gradle:8.4.0-jdk17-jammy AS BUILD

WORKDIR /appbuild

COPY . .

RUN gradle build -Dquarkus.package.type=uber-jar --no-daemon

#FROM amazoncorretto:17-alpine as CORRETTO-DEPS
#
#WORKDIR /app
#
#COPY --from=build /appbuild/build/paddy-backend-runner.jar .
#
## Get modules list
#RUN unzip paddy-backend-runner.jar -d temp && \
# jdeps \
# --print-module-deps \
# --ignore-missing-deps \
# --recursive \
# --multi-release 17 \
# --class-path="./temp/BOOT-INF/lib/*" \
# --module-path="./temp/BOOT-INF/lib/*" \
# paddy-backend-runner.jar > modules.txt
#
#FROM amazoncorretto:17-alpine as CORRETTO-JDK
#
#WORKDIR /app
#
#COPY --from=corretto-deps /app/modules.txt .
#
## Output a custom jre built from the modules list
#RUN apk add --no-cache binutils && \
# jlink \
# --verbose \
# --add-modules "$(cat modules.txt)" \
# --strip-debug \
# --no-man-pages \
# --no-header-files \
# --compress=2 \
# --output /jre

FROM amazoncorretto:17-alpine as CORRETTO-JDK

#COPY --from=corretto-jdk /jre /app/jre
COPY --from=build /appbuild/build/paddy-backend-runner.jar /app/paddy-backend-runner.jar

WORKDIR /app

ARG DEBUG_OPT
ENV DEBUG_API_OPT=$DEBUG_OPT

CMD java $DEBUG_API_OPT -jar paddy-backend-runner.jar
21 changes: 0 additions & 21 deletions Dockerfile.native

This file was deleted.

4 changes: 4 additions & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
pluginManagement {

val quarkusPluginVersion: String by settings
val quarkusPluginId: String by settings

repositories {
mavenCentral()
gradlePluginPortal()
mavenLocal()
}

plugins {
id(quarkusPluginId) version quarkusPluginVersion
}
}

rootProject.name="paddy-backend"
6 changes: 5 additions & 1 deletion src/main/resources/application.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
quarkus:
native:
additional-build-args:
- '--initialize-at-run-time=com.hivemq.client.internal.mqtt.codec.encoder.MqttPingReqEncoder'
- '--initialize-at-run-time=com.hivemq.client.internal.mqtt.codec.encoder.mqtt3.Mqtt3DisconnectEncoder'

package:
output-name: paddy-backend

devservices:
enabled: false

http:

port: 80

root-path: /api/v1
Expand Down

0 comments on commit bacad44

Please sign in to comment.