From d75804ae725d8cbc514bbe30251c1bcfdbccbce7 Mon Sep 17 00:00:00 2001 From: Stuart Douglas Date: Fri, 11 Oct 2024 08:39:49 +1100 Subject: [PATCH] fix: JVM support on Kube (#3074) --- Dockerfile.box | 8 +++----- Dockerfile.runner | 11 ++++------- ...jbr-17.0.6.b469.82.pkg => .openjdk-17.0.8_7.pkg} | 0 bin/jar | 2 +- bin/jarsigner | 2 +- bin/java | 2 +- bin/javac | 2 +- bin/javadoc | 2 +- bin/javap | 2 +- bin/jcmd | 2 +- bin/jconsole | 2 +- bin/jdb | 2 +- bin/jdeprscan | 2 +- bin/jdeps | 2 +- bin/jfr | 2 +- bin/jhsdb | 2 +- bin/jimage | 2 +- bin/jinfo | 2 +- bin/jlink | 2 +- bin/jmap | 2 +- bin/jmod | 2 +- bin/jpackage | 2 +- bin/jps | 2 +- bin/jrunscript | 2 +- bin/jshell | 2 +- bin/jstack | 2 +- bin/jstat | 2 +- bin/jstatd | 2 +- bin/keytool | 2 +- bin/rmiregistry | 2 +- bin/serialver | 2 +- deployment/Dockerfile.runner.test | 13 +++++++++---- deployment/Justfile | 1 + 33 files changed, 45 insertions(+), 44 deletions(-) rename bin/{.jbr-17.0.6.b469.82.pkg => .openjdk-17.0.8_7.pkg} (100%) diff --git a/Dockerfile.box b/Dockerfile.box index 8b7962fc5e..881baf1cf3 100644 --- a/Dockerfile.box +++ b/Dockerfile.box @@ -6,12 +6,10 @@ RUN apt-get install -y curl git zip COPY ./bin /src/bin ENV PATH="/src/bin:$PATH" ENV HERMIT_STATE_DIR=/hermit -RUN hermit uninstall jbr -RUN hermit install openjre-18.0.2.1_1 +RUN hermit install openjdk-17.0.8_7 # openjre and jbr conflict, but we want the JRE in the cache -RUN hermit uninstall openjre -RUN hermit install jbr RUN go version +RUN java -version WORKDIR /src @@ -33,7 +31,7 @@ FROM ubuntu:24.04 WORKDIR /root/ ENV PATH="/root/jre/bin:$PATH" -COPY --from=builder /hermit/pkg/openjre-18.0.2.1_1/ ./jre/ +COPY --from=builder /hermit/pkg/openjdk-17.0.8_7/ ./jre/ COPY --from=builder /src/build/release/ftl . RUN mkdir deployments # Where the module artifacts are stored diff --git a/Dockerfile.runner b/Dockerfile.runner index 9fa6a3057e..e04c42ae90 100644 --- a/Dockerfile.runner +++ b/Dockerfile.runner @@ -6,11 +6,7 @@ RUN apt-get install -y curl git zip COPY ./bin /src/bin ENV PATH="/src/bin:$PATH" ENV HERMIT_STATE_DIR=/hermit -RUN hermit uninstall jbr -RUN hermit install openjre-18.0.2.1_1 -# openjre and jbr conflict, but we want the JRE in the cache -RUN hermit uninstall openjre -RUN hermit install jbr +RUN hermit install openjdk-17.0.8_7 RUN go version RUN mvn -B --version @@ -36,8 +32,9 @@ RUN apt-get install -y ca-certificates WORKDIR /root/ -ENV PATH="/root/jre/bin:$PATH" -COPY --from=builder /hermit/pkg/openjre-18.0.2.1_1/ ./jre/ +ENV PATH="/root/jdk/bin:$PATH" +ENV JAVA_HOME="/root/jdk" +COPY --from=builder /hermit/pkg/openjdk-17.0.8_7/ /root/jdk/ COPY --from=builder /src/build/release/ftl-runner . COPY --from=builder /src/build/release/ftl . RUN mkdir deployments diff --git a/bin/.jbr-17.0.6.b469.82.pkg b/bin/.openjdk-17.0.8_7.pkg similarity index 100% rename from bin/.jbr-17.0.6.b469.82.pkg rename to bin/.openjdk-17.0.8_7.pkg diff --git a/bin/jar b/bin/jar index 715abb0d13..7d19c5ad1d 120000 --- a/bin/jar +++ b/bin/jar @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/jarsigner b/bin/jarsigner index 715abb0d13..7d19c5ad1d 120000 --- a/bin/jarsigner +++ b/bin/jarsigner @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/java b/bin/java index 715abb0d13..7d19c5ad1d 120000 --- a/bin/java +++ b/bin/java @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/javac b/bin/javac index 715abb0d13..7d19c5ad1d 120000 --- a/bin/javac +++ b/bin/javac @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/javadoc b/bin/javadoc index 715abb0d13..7d19c5ad1d 120000 --- a/bin/javadoc +++ b/bin/javadoc @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/javap b/bin/javap index 715abb0d13..7d19c5ad1d 120000 --- a/bin/javap +++ b/bin/javap @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/jcmd b/bin/jcmd index 715abb0d13..7d19c5ad1d 120000 --- a/bin/jcmd +++ b/bin/jcmd @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/jconsole b/bin/jconsole index 715abb0d13..7d19c5ad1d 120000 --- a/bin/jconsole +++ b/bin/jconsole @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/jdb b/bin/jdb index 715abb0d13..7d19c5ad1d 120000 --- a/bin/jdb +++ b/bin/jdb @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/jdeprscan b/bin/jdeprscan index 715abb0d13..7d19c5ad1d 120000 --- a/bin/jdeprscan +++ b/bin/jdeprscan @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/jdeps b/bin/jdeps index 715abb0d13..7d19c5ad1d 120000 --- a/bin/jdeps +++ b/bin/jdeps @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/jfr b/bin/jfr index 715abb0d13..7d19c5ad1d 120000 --- a/bin/jfr +++ b/bin/jfr @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/jhsdb b/bin/jhsdb index 715abb0d13..7d19c5ad1d 120000 --- a/bin/jhsdb +++ b/bin/jhsdb @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/jimage b/bin/jimage index 715abb0d13..7d19c5ad1d 120000 --- a/bin/jimage +++ b/bin/jimage @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/jinfo b/bin/jinfo index 715abb0d13..7d19c5ad1d 120000 --- a/bin/jinfo +++ b/bin/jinfo @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/jlink b/bin/jlink index 715abb0d13..7d19c5ad1d 120000 --- a/bin/jlink +++ b/bin/jlink @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/jmap b/bin/jmap index 715abb0d13..7d19c5ad1d 120000 --- a/bin/jmap +++ b/bin/jmap @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/jmod b/bin/jmod index 715abb0d13..7d19c5ad1d 120000 --- a/bin/jmod +++ b/bin/jmod @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/jpackage b/bin/jpackage index 715abb0d13..7d19c5ad1d 120000 --- a/bin/jpackage +++ b/bin/jpackage @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/jps b/bin/jps index 715abb0d13..7d19c5ad1d 120000 --- a/bin/jps +++ b/bin/jps @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/jrunscript b/bin/jrunscript index 715abb0d13..7d19c5ad1d 120000 --- a/bin/jrunscript +++ b/bin/jrunscript @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/jshell b/bin/jshell index 715abb0d13..7d19c5ad1d 120000 --- a/bin/jshell +++ b/bin/jshell @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/jstack b/bin/jstack index 715abb0d13..7d19c5ad1d 120000 --- a/bin/jstack +++ b/bin/jstack @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/jstat b/bin/jstat index 715abb0d13..7d19c5ad1d 120000 --- a/bin/jstat +++ b/bin/jstat @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/jstatd b/bin/jstatd index 715abb0d13..7d19c5ad1d 120000 --- a/bin/jstatd +++ b/bin/jstatd @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/keytool b/bin/keytool index 715abb0d13..7d19c5ad1d 120000 --- a/bin/keytool +++ b/bin/keytool @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/rmiregistry b/bin/rmiregistry index 715abb0d13..7d19c5ad1d 120000 --- a/bin/rmiregistry +++ b/bin/rmiregistry @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/bin/serialver b/bin/serialver index 715abb0d13..7d19c5ad1d 120000 --- a/bin/serialver +++ b/bin/serialver @@ -1 +1 @@ -.jbr-17.0.6.b469.82.pkg \ No newline at end of file +.openjdk-17.0.8_7.pkg \ No newline at end of file diff --git a/deployment/Dockerfile.runner.test b/deployment/Dockerfile.runner.test index da3371863a..0ed3c3a31c 100644 --- a/deployment/Dockerfile.runner.test +++ b/deployment/Dockerfile.runner.test @@ -1,9 +1,15 @@ +FROM ubuntu:24.04 AS builder +RUN apt-get update + +WORKDIR /src + +# Finally create the runtime image. FROM ubuntu:24.04 +RUN apt-get update +RUN apt-get install -y ca-certificates openjdk-17-jdk WORKDIR /root/ -#this image does not have a JRE, only test golang on kube - COPY docker-build/ftl-runner . COPY docker-build/ftl . RUN mkdir deployments @@ -12,6 +18,5 @@ EXPOSE 8894 ENV FTL_ENDPOINT="http://host.docker.internal:8892" ENV FTL_RUNNER_BIND="http://0.0.0.0:8893" -ENV FTL_RUNNER_ADVERTISE="http://127.0.0.1:8893" -CMD ["/root/ftl-runner", "--deployment-dir=deployments"] +CMD ["/root/ftl-runner", "--deployment-dir=deployments"] diff --git a/deployment/Justfile b/deployment/Justfile index 9bdf67db8f..0c015c6faa 100755 --- a/deployment/Justfile +++ b/deployment/Justfile @@ -113,6 +113,7 @@ ftl-status: build-executables: # we build locally then copy into the docker files # it is way faster than building in the docker files + java -version #make sure hermit has downloaded Java mkdir -p "docker-build" cd ../ && GOARCH=amd64 GOOS=linux CGO_ENABLED=0 just build ftl-controller ftl-runner ftl-initdb ftl cp ../build/release/* ./docker-build/