@@ -21,6 +21,8 @@ java.management,\
21
21
jdk.jdwp.agent,\
22
22
# JVM metrics such as garbage collection
23
23
jdk.management,\
24
+ # JFR for live monitoring, adds < 1MB to size
25
+ jdk.jfr,jdk.management.jfr,\
24
26
# prevents us from needing a different base layer for kafka-zookeeper
25
27
# ZooKeeper needs jdk.management.agent, and adding it is 900K vs 200M for a different base layer
26
28
jdk.management.agent,\
@@ -41,9 +43,13 @@ java.net.http,\
41
43
jdk.zipfs\
42
44
--output jre
43
45
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
46
48
49
+ FROM amd64/debian:bookworm-slim As builder
50
+ RUN apt update && apt install -y libjemalloc-dev
51
+
52
+ # Debian-12 image
47
53
FROM gcr.io/distroless/cc-debian12:debug
48
54
49
55
MAINTAINER Hypertrace "https://www.hypertrace.org/"
@@ -52,15 +58,21 @@ SHELL ["/busybox/sh", "-c"]
52
58
53
59
RUN ln -s /busybox/sh /bin/sh
54
60
55
- COPY --from=deps /etc/ssl/certs/java /etc/ssl/certs/java
61
+ COPY --from=ssl /etc/ssl/certs/java /etc/ssl/certs/java
56
62
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
58
64
RUN ln -s /lib/x86_64-linux-gnu/libz.so.1.2.11 /lib/x86_64-linux-gnu/libz.so.1
59
65
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
62
74
63
75
# 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
65
77
66
78
ENTRYPOINT ["/usr/bin/java" , "-jar" ]
0 commit comments