From 87a945bfc2eeb4e270f879da5588f7fe7db44369 Mon Sep 17 00:00:00 2001 From: Steve Hu Date: Wed, 3 Jul 2019 15:21:01 -0400 Subject: [PATCH] fixes #174 update Dockerfile for java 11 --- authorize/Dockerfile | 33 ++++++++++++++++++++++++++++++--- client/Dockerfile | 33 ++++++++++++++++++++++++++++++--- code/Dockerfile | 33 ++++++++++++++++++++++++++++++--- key/Dockerfile | 33 ++++++++++++++++++++++++++++++--- provider/docker/Dockerfile | 34 ++++++++++++++++++++++++++++++---- refresh-token/Dockerfile | 33 ++++++++++++++++++++++++++++++--- service/Dockerfile | 33 ++++++++++++++++++++++++++++++--- token/Dockerfile | 33 ++++++++++++++++++++++++++++++--- user/Dockerfile | 32 +++++++++++++++++++++++++++++--- 9 files changed, 269 insertions(+), 28 deletions(-) diff --git a/authorize/Dockerfile b/authorize/Dockerfile index 386c22bf..c8dc2ef4 100644 --- a/authorize/Dockerfile +++ b/authorize/Dockerfile @@ -1,3 +1,30 @@ -FROM openjdk:8-jre-alpine -ADD /target/oauth2-authorize.jar server.jar -CMD ["/bin/sh","-c","java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1 -Dlight-4j-config-dir=/config -Dlogback.configurationFile=/config/logback.xml -Djava.security.krb5.conf=/config/krb5.conf -jar /server.jar"] \ No newline at end of file +FROM azul/zulu-openjdk-alpine:11 as packager + +RUN { \ + java --version ; \ + echo "jlink version:" && \ + jlink --version ; \ + } + +ENV JAVA_MINIMAL=/opt/jre + +# build modules distribution +RUN jlink \ + --verbose \ + --add-modules \ + java.base,java.sql,java.naming,java.desktop,java.xml,jdk.crypto.cryptoki,jdk.unsupported \ + --compress 2 \ + --strip-debug \ + --no-header-files \ + --no-man-pages \ + --output "$JAVA_MINIMAL" + +# Second stage, add only our minimal "JRE" distr and our app +FROM alpine + +ENV JAVA_MINIMAL=/opt/jre +ENV PATH="$PATH:$JAVA_MINIMAL/bin" + +COPY --from=packager "$JAVA_MINIMAL" "$JAVA_MINIMAL" +COPY /target/oauth2-authorize.jar server.jar +CMD ["/bin/sh","-c","java -Dlight-4j-config-dir=/config -Dlogback.configurationFile=/config/logback.xml -Djava.security.krb5.conf=/config/krb5.conf -jar /server.jar"] diff --git a/client/Dockerfile b/client/Dockerfile index d21b6da9..bb9cd043 100644 --- a/client/Dockerfile +++ b/client/Dockerfile @@ -1,3 +1,30 @@ -FROM openjdk:8-jre-alpine -ADD /target/oauth2-client.jar server.jar -CMD ["/bin/sh","-c","java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1 -Dlight-4j-config-dir=/config -Dlogback.configurationFile=/config/logback.xml -jar /server.jar"] +FROM azul/zulu-openjdk-alpine:11 as packager + +RUN { \ + java --version ; \ + echo "jlink version:" && \ + jlink --version ; \ + } + +ENV JAVA_MINIMAL=/opt/jre + +# build modules distribution +RUN jlink \ + --verbose \ + --add-modules \ + java.base,java.sql,java.naming,java.desktop,java.xml,jdk.crypto.cryptoki,jdk.unsupported \ + --compress 2 \ + --strip-debug \ + --no-header-files \ + --no-man-pages \ + --output "$JAVA_MINIMAL" + +# Second stage, add only our minimal "JRE" distr and our app +FROM alpine + +ENV JAVA_MINIMAL=/opt/jre +ENV PATH="$PATH:$JAVA_MINIMAL/bin" + +COPY --from=packager "$JAVA_MINIMAL" "$JAVA_MINIMAL" +COPY /target/oauth2-client.jar server.jar +CMD ["/bin/sh","-c","java -Dlight-4j-config-dir=/config -Dlogback.configurationFile=/config/logback.xml -jar /server.jar"] diff --git a/code/Dockerfile b/code/Dockerfile index dec4415f..6d536317 100644 --- a/code/Dockerfile +++ b/code/Dockerfile @@ -1,3 +1,30 @@ -FROM openjdk:8-jre-alpine -ADD /target/oauth2-code.jar server.jar -CMD ["/bin/sh","-c","java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1 -Dlight-4j-config-dir=/config -Dlogback.configurationFile=/config/logback.xml -Djava.security.krb5.conf=/config/krb5.conf -jar /server.jar"] +FROM azul/zulu-openjdk-alpine:11 as packager + +RUN { \ + java --version ; \ + echo "jlink version:" && \ + jlink --version ; \ + } + +ENV JAVA_MINIMAL=/opt/jre + +# build modules distribution +RUN jlink \ + --verbose \ + --add-modules \ + java.base,java.sql,java.naming,java.desktop,java.xml,jdk.crypto.cryptoki,jdk.unsupported \ + --compress 2 \ + --strip-debug \ + --no-header-files \ + --no-man-pages \ + --output "$JAVA_MINIMAL" + +# Second stage, add only our minimal "JRE" distr and our app +FROM alpine + +ENV JAVA_MINIMAL=/opt/jre +ENV PATH="$PATH:$JAVA_MINIMAL/bin" + +COPY --from=packager "$JAVA_MINIMAL" "$JAVA_MINIMAL" +COPY /target/oauth2-code.jar server.jar +CMD ["/bin/sh","-c","java -Dlight-4j-config-dir=/config -Dlogback.configurationFile=/config/logback.xml -Djava.security.krb5.conf=/config/krb5.conf -jar /server.jar"] diff --git a/key/Dockerfile b/key/Dockerfile index bbf11637..eeb6e72d 100644 --- a/key/Dockerfile +++ b/key/Dockerfile @@ -1,3 +1,30 @@ -FROM openjdk:8-jre-alpine -ADD /target/oauth2-key.jar server.jar -CMD ["/bin/sh","-c","java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1 -Dlight-4j-config-dir=/config -Dlogback.configurationFile=/config/logback.xml -jar /server.jar"] +FROM azul/zulu-openjdk-alpine:11 as packager + +RUN { \ + java --version ; \ + echo "jlink version:" && \ + jlink --version ; \ + } + +ENV JAVA_MINIMAL=/opt/jre + +# build modules distribution +RUN jlink \ + --verbose \ + --add-modules \ + java.base,java.sql,java.naming,java.desktop,java.xml,jdk.crypto.cryptoki,jdk.unsupported \ + --compress 2 \ + --strip-debug \ + --no-header-files \ + --no-man-pages \ + --output "$JAVA_MINIMAL" + +# Second stage, add only our minimal "JRE" distr and our app +FROM alpine + +ENV JAVA_MINIMAL=/opt/jre +ENV PATH="$PATH:$JAVA_MINIMAL/bin" + +COPY --from=packager "$JAVA_MINIMAL" "$JAVA_MINIMAL" +COPY /target/oauth2-key.jar server.jar +CMD ["/bin/sh","-c","java -Dlight-4j-config-dir=/config -Dlogback.configurationFile=/config/logback.xml -jar /server.jar"] diff --git a/provider/docker/Dockerfile b/provider/docker/Dockerfile index 1a5be6c7..4403cb28 100644 --- a/provider/docker/Dockerfile +++ b/provider/docker/Dockerfile @@ -1,4 +1,30 @@ -FROM openjdk:8-jre-alpine -#EXPOSE 6889 -ADD target/oauth2-provider.jar server.jar -CMD ["/bin/sh","-c","java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1 -Dlight-4j-config-dir=/config -Dlogback.configurationFile=/config/logback.xml -jar /server.jar"] \ No newline at end of file +FROM azul/zulu-openjdk-alpine:11 as packager + +RUN { \ + java --version ; \ + echo "jlink version:" && \ + jlink --version ; \ + } + +ENV JAVA_MINIMAL=/opt/jre + +# build modules distribution +RUN jlink \ + --verbose \ + --add-modules \ + java.base,java.sql,java.naming,java.desktop,java.xml,jdk.crypto.cryptoki,jdk.unsupported \ + --compress 2 \ + --strip-debug \ + --no-header-files \ + --no-man-pages \ + --output "$JAVA_MINIMAL" + +# Second stage, add only our minimal "JRE" distr and our app +FROM alpine + +ENV JAVA_MINIMAL=/opt/jre +ENV PATH="$PATH:$JAVA_MINIMAL/bin" + +COPY --from=packager "$JAVA_MINIMAL" "$JAVA_MINIMAL" +COPY target/oauth2-provider.jar server.jar +CMD ["/bin/sh","-c","java -Dlight-4j-config-dir=/config -Dlogback.configurationFile=/config/logback.xml -jar /server.jar"] \ No newline at end of file diff --git a/refresh-token/Dockerfile b/refresh-token/Dockerfile index 33c22d7d..01926f18 100644 --- a/refresh-token/Dockerfile +++ b/refresh-token/Dockerfile @@ -1,3 +1,30 @@ -FROM openjdk:8-jre-alpine -ADD /target/oauth2-refresh-token.jar server.jar -CMD ["/bin/sh","-c","java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1 -Dlight-4j-config-dir=/config -Dlogback.configurationFile=/config/logback.xml -jar /server.jar"] +FROM azul/zulu-openjdk-alpine:11 as packager + +RUN { \ + java --version ; \ + echo "jlink version:" && \ + jlink --version ; \ + } + +ENV JAVA_MINIMAL=/opt/jre + +# build modules distribution +RUN jlink \ + --verbose \ + --add-modules \ + java.base,java.sql,java.naming,java.desktop,java.xml,jdk.crypto.cryptoki,jdk.unsupported \ + --compress 2 \ + --strip-debug \ + --no-header-files \ + --no-man-pages \ + --output "$JAVA_MINIMAL" + +# Second stage, add only our minimal "JRE" distr and our app +FROM alpine + +ENV JAVA_MINIMAL=/opt/jre +ENV PATH="$PATH:$JAVA_MINIMAL/bin" + +COPY --from=packager "$JAVA_MINIMAL" "$JAVA_MINIMAL" +COPY /target/oauth2-refresh-token.jar server.jar +CMD ["/bin/sh","-c","java -Dlight-4j-config-dir=/config -Dlogback.configurationFile=/config/logback.xml -jar /server.jar"] diff --git a/service/Dockerfile b/service/Dockerfile index d4859e43..b864ab50 100644 --- a/service/Dockerfile +++ b/service/Dockerfile @@ -1,4 +1,31 @@ -FROM openjdk:8-jre-alpine -ADD /target/oauth2-service.jar server.jar -CMD ["/bin/sh","-c","java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1 -Dlight-4j-config-dir=/config -Dlogback.configurationFile=/config/logback.xml -jar /server.jar"] +FROM azul/zulu-openjdk-alpine:11 as packager + +RUN { \ + java --version ; \ + echo "jlink version:" && \ + jlink --version ; \ + } + +ENV JAVA_MINIMAL=/opt/jre + +# build modules distribution +RUN jlink \ + --verbose \ + --add-modules \ + java.base,java.sql,java.naming,java.desktop,java.xml,jdk.crypto.cryptoki,jdk.unsupported \ + --compress 2 \ + --strip-debug \ + --no-header-files \ + --no-man-pages \ + --output "$JAVA_MINIMAL" + +# Second stage, add only our minimal "JRE" distr and our app +FROM alpine + +ENV JAVA_MINIMAL=/opt/jre +ENV PATH="$PATH:$JAVA_MINIMAL/bin" + +COPY --from=packager "$JAVA_MINIMAL" "$JAVA_MINIMAL" +COPY /target/oauth2-service.jar server.jar +CMD ["/bin/sh","-c","java -Dlight-4j-config-dir=/config -Dlogback.configurationFile=/config/logback.xml -jar /server.jar"] diff --git a/token/Dockerfile b/token/Dockerfile index d54327fa..73626b9b 100644 --- a/token/Dockerfile +++ b/token/Dockerfile @@ -1,3 +1,30 @@ -FROM openjdk:8-jre-alpine -ADD /target/oauth2-token.jar server.jar -CMD ["/bin/sh","-c","java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1 -Dlight-4j-config-dir=/config -Dlogback.configurationFile=/config/logback.xml -jar /server.jar"] +FROM azul/zulu-openjdk-alpine:11 as packager + +RUN { \ + java --version ; \ + echo "jlink version:" && \ + jlink --version ; \ + } + +ENV JAVA_MINIMAL=/opt/jre + +# build modules distribution +RUN jlink \ + --verbose \ + --add-modules \ + java.base,java.sql,java.naming,java.desktop,java.xml,jdk.crypto.cryptoki,jdk.unsupported \ + --compress 2 \ + --strip-debug \ + --no-header-files \ + --no-man-pages \ + --output "$JAVA_MINIMAL" + +# Second stage, add only our minimal "JRE" distr and our app +FROM alpine + +ENV JAVA_MINIMAL=/opt/jre +ENV PATH="$PATH:$JAVA_MINIMAL/bin" + +COPY --from=packager "$JAVA_MINIMAL" "$JAVA_MINIMAL" +COPY /target/oauth2-token.jar server.jar +CMD ["/bin/sh","-c","java -Dlight-4j-config-dir=/config -Dlogback.configurationFile=/config/logback.xml -jar /server.jar"] diff --git a/user/Dockerfile b/user/Dockerfile index 3591e51c..80883a4d 100644 --- a/user/Dockerfile +++ b/user/Dockerfile @@ -1,4 +1,30 @@ -FROM openjdk:8-jre-alpine -ADD /target/oauth2-user.jar server.jar -CMD ["/bin/sh","-c","java -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1 -Dlight-4j-config-dir=/config -Dlogback.configurationFile=/config/logback.xml -jar /server.jar"] +FROM azul/zulu-openjdk-alpine:11 as packager +RUN { \ + java --version ; \ + echo "jlink version:" && \ + jlink --version ; \ + } + +ENV JAVA_MINIMAL=/opt/jre + +# build modules distribution +RUN jlink \ + --verbose \ + --add-modules \ + java.base,java.sql,java.naming,java.desktop,java.xml,jdk.crypto.cryptoki,jdk.unsupported \ + --compress 2 \ + --strip-debug \ + --no-header-files \ + --no-man-pages \ + --output "$JAVA_MINIMAL" + +# Second stage, add only our minimal "JRE" distr and our app +FROM alpine + +ENV JAVA_MINIMAL=/opt/jre +ENV PATH="$PATH:$JAVA_MINIMAL/bin" + +COPY --from=packager "$JAVA_MINIMAL" "$JAVA_MINIMAL" +COPY /target/oauth2-user.jar server.jar +CMD ["/bin/sh","-c","java -Dlight-4j-config-dir=/config -Dlogback.configurationFile=/config/logback.xml -jar /server.jar"]