@@ -21,6 +21,8 @@ java.management,\
2121jdk.jdwp.agent,\
2222# JVM metrics such as garbage collection
2323jdk.management,\
24+ # JFR for live monitoring, adds < 1MB to size
25+ jdk.jfr,jdk.management.jfr,\
2426# prevents us from needing a different base layer for kafka-zookeeper
2527# ZooKeeper needs jdk.management.agent, and adding it is 900K vs 200M for a different base layer
2628jdk.management.agent,\
@@ -41,9 +43,13 @@ java.net.http,\
4143jdk.zipfs\
4244 --output jre
4345
44- # We extract JRE's hard dependencies, libz and SSL certs, from the fat JRE image.
45- FROM gcr.io/distroless/java:11- debug AS deps
46+ # Extract java SSL certs
47+ FROM gcr.io/distroless/java-base-debian12: debug AS ssl
4648
49+ FROM amd64/debian:bookworm-slim As builder
50+ RUN apt update && apt install -y libjemalloc-dev
51+
52+ # Debian-12 image
4753FROM gcr.io/distroless/cc-debian12:debug
4854
4955MAINTAINER Hypertrace "https://www.hypertrace.org/"
@@ -52,15 +58,21 @@ SHELL ["/busybox/sh", "-c"]
5258
5359RUN ln -s /busybox/sh /bin/sh
5460
55- COPY --from=deps /etc/ssl/certs/java /etc/ssl/certs/java
61+ COPY --from=ssl /etc/ssl/certs/java /etc/ssl/certs/java
5662
57- COPY --from=deps /lib/x86_64-linux-gnu/libz.so.1.2.11 /lib/x86_64-linux-gnu/libz.so.1.2.11
63+ COPY --from=jre /lib/x86_64-linux-gnu/libz.so.1.2.11 /lib/x86_64-linux-gnu/libz.so.1.2.11
5864RUN ln -s /lib/x86_64-linux-gnu/libz.so.1.2.11 /lib/x86_64-linux-gnu/libz.so.1
5965
60- COPY --from=jre /jre /usr/lib/jvm/zulu-14-amd64-slim
61- RUN ln -s /usr/lib/jvm/zulu-14-amd64-slim/bin/java /usr/bin/java
66+ COPY --from=jre /jre /usr/lib/jvm/zulu-21-amd64-slim
67+ RUN ln -s /usr/lib/jvm/zulu-21-amd64-slim/bin/java /usr/bin/java
68+ RUN ln -s /usr/lib/jvm/zulu-21-amd64-slim/bin/jfr /usr/bin/jfr
69+
70+ # change rocksdb default memory allocator
71+ # https://docs.confluent.io/platform/current/streams/developer-guide/memory-mgmt.html#rocksdb
72+ COPY --from=builder /usr/lib/x86_64-linux-gnu/libjemalloc* /usr/lib/x86_64-linux-gnu/
73+ ENV LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so
6274
6375# set JAVA_HOME
64- ENV JAVA_HOME=/usr/lib/jvm/zulu-14 -amd64-slim
76+ ENV JAVA_HOME=/usr/lib/jvm/zulu-21 -amd64-slim
6577
6678ENTRYPOINT ["/usr/bin/java" , "-jar" ]
0 commit comments