-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
34 lines (32 loc) · 1.02 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# Stage 1 build app
FROM azul/zulu-openjdk-debian:14 as BUILD
COPY *.gradle gradle.* gradlew /src/
COPY gradle /src/gradle
COPY scripts /src/scripts
WORKDIR /src
COPY . .
RUN ./gradlew --no-daemon build
# Stage 2 build minimal jre
FROM azul/zulu-openjdk-debian:14 as packager
ENV JAVA_MINIMAL=/opt/jre
RUN apt-get -qq update && \
apt-get install binutils -y && \
jlink \
--verbose \
--add-modules java.base,jdk.unsupported,java.xml,java.desktop,java.management,java.naming \
--compress 2 \
--strip-debug \
--no-header-files \
--no-man-pages \
--output "$JAVA_MINIMAL"
# Stage 3 assemble final image with custom jre and application
FROM ubuntu:focal
ENV JAVA_MINIMAL=/opt/jre
RUN mkdir /opt/app
RUN mkdir /opt/config
COPY --from=packager "$JAVA_MINIMAL" "$JAVA_MINIMAL"
ENV PATH="$PATH:$JAVA_MINIMAL/bin"
COPY --from=BUILD /src/scripts /opt/scripts
COPY --from=BUILD /src/build/libs/kscheduler-1.0.0-SNAPSHOT-all.jar /opt/app/kscheduler.jar
ENTRYPOINT ["/opt/scripts/startup.sh"]
CMD ["/opt/app/kscheduler.jar"]