parent
486e3d68e6
commit
9f9d09cc9c
@ -0,0 +1,41 @@
|
|||||||
|
FROM alpine:3.17 as BUILD
|
||||||
|
RUN apk add --no-cache binutils maven openjdk17-jdk
|
||||||
|
WORKDIR /build
|
||||||
|
COPY pom.xml .
|
||||||
|
RUN mvn dependency:go-offline
|
||||||
|
COPY src/ /build/src/
|
||||||
|
RUN export BUILD_DIRECTORY="$(mvn help:evaluate -Dexpression='project.build.directory' -q -DforceStdout)" && \
|
||||||
|
export BUILD_NAME="$(mvn help:evaluate -Dexpression='project.build.finalName' -q -DforceStdout)" && \
|
||||||
|
mvn package && \
|
||||||
|
mkdir unpacked && \
|
||||||
|
cd unpacked && \
|
||||||
|
unzip /build/target/${BUILD_NAME}.jar && \
|
||||||
|
cd .. && \
|
||||||
|
mkdir -p /build/unpacked/BOOT-INF/lib && \
|
||||||
|
cp ${BUILD_DIRECTORY}/${BUILD_NAME}.lib/*.jar /build/unpacked/BOOT-INF/lib/ && \
|
||||||
|
jdeps \
|
||||||
|
--ignore-missing-deps \
|
||||||
|
--print-module-deps \
|
||||||
|
-q \
|
||||||
|
--recursive \
|
||||||
|
--multi-release 17 \
|
||||||
|
--class-path="./unpacked/BOOT-INF/lib/*" \
|
||||||
|
--module-path="./unpacked/BOOT-INF/lib/*" \
|
||||||
|
${BUILD_DIRECTORY}/${BUILD_NAME}.jar > ${BUILD_DIRECTORY}/deps.info && \
|
||||||
|
jlink \
|
||||||
|
--verbose \
|
||||||
|
--add-modules $(cat ${BUILD_DIRECTORY}/deps.info) \
|
||||||
|
--strip-debug \
|
||||||
|
--no-man-pages \
|
||||||
|
--no-header-files \
|
||||||
|
--compress=2 \
|
||||||
|
--output ./jre && \
|
||||||
|
echo -e "#!/bin/sh\n" \
|
||||||
|
"/opt/jre/bin/java -jar ${BUILD_NAME}.jar" \
|
||||||
|
> ${BUILD_DIRECTORY}/run.sh && \
|
||||||
|
chmod 700 ${BUILD_DIRECTORY}/run.sh
|
||||||
|
FROM alpine:3.17
|
||||||
|
COPY --from=BUILD /build/target/ /opt/target/
|
||||||
|
COPY --from=BUILD /build/jre /opt/jre
|
||||||
|
WORKDIR /opt/target
|
||||||
|
ENTRYPOINT ["./run.sh"]
|
Loading…
Reference in new issue