Skip to content

Commit acd9cf9

Browse files
committed
[feature] Allow additional Java Garbage Collector to be set at Docker Container build time
1 parent 92a9704 commit acd9cf9

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

exist-docker/src/main/resources-filtered/Dockerfile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ ARG ELEMENTAL_SERVER_MAX_BROKER="20"
3232
##
3333
# JVM maximum RAM use (as a percentage of RAM available to the Docker Container)
3434
ARG JVM_MAX_RAM_PERCENTAGE="75.0"
35+
# JVM Garbage Collector
36+
ARG JVM_GC="Z"
3537

3638
# Any additional options to be added to the JAVA_TOOL_OPTIONS Environment Variable for the JVM
3739
ARG ADDITIONAL_JAVA_TOOL_OPTIONS
@@ -57,6 +59,7 @@ FROM cgr.dev/chainguard/glibc-dynamic:latest
5759
ARG ELEMENTAL_SERVER_CACHE_MEM
5860
ARG ELEMENTAL_SERVER_MAX_BROKER
5961
ARG JVM_MAX_RAM_PERCENTAGE
62+
ARG JVM_GC
6063
ARG ADDITIONAL_JAVA_TOOL_OPTIONS
6164

6265
# Copy over dependencies for updated JRE from Wolfi
@@ -120,7 +123,7 @@ ENV CLASSPATH="/elemental/lib/${elemental.uber.jar.filename}"
120123

121124
ENV JAVA_HOME="/usr/lib/jvm/java-21-openjdk"
122125

123-
ENV JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF-8 -Djava.awt.headless=true -Dorg.exist.db-connection.cacheSize=${ELEMENTAL_SERVER_CACHE_MEM}M -Dorg.exist.db-connection.pool.max=${ELEMENTAL_SERVER_MAX_BROKER} -Dlog4j.configurationFile=/elemental/etc/log4j2.xml -Dexist.home=/elemental -Dexist.configurationFile=/elemental/etc/conf.xml -Djetty.home=/elemental -Dexist.jetty.config=/elemental/etc/jetty/standard.enabled-jetty-configs -XX:+UseNUMA -XX:+UseZGC -XX:+UseContainerSupport -XX:MaxRAMPercentage=${JVM_MAX_RAM_PERCENTAGE} -XX:+ExitOnOutOfMemoryError ${ADDITIONAL_JAVA_TOOL_OPTIONS}"
126+
ENV JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF-8 -Djava.awt.headless=true -Dorg.exist.db-connection.cacheSize=${ELEMENTAL_SERVER_CACHE_MEM}M -Dorg.exist.db-connection.pool.max=${ELEMENTAL_SERVER_MAX_BROKER} -Dlog4j.configurationFile=/elemental/etc/log4j2.xml -Dexist.home=/elemental -Dexist.configurationFile=/elemental/etc/conf.xml -Djetty.home=/elemental -Dexist.jetty.config=/elemental/etc/jetty/standard.enabled-jetty-configs -XX:+UseNUMA -XX:+Use${JVM_GC}GC -XX:+UseContainerSupport -XX:MaxRAMPercentage=${JVM_MAX_RAM_PERCENTAGE} -XX:+ExitOnOutOfMemoryError ${ADDITIONAL_JAVA_TOOL_OPTIONS}"
124127

125128
ENV PATH="/usr/lib/jvm/java-21-openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
126129

exist-docker/src/main/resources-filtered/Dockerfile-DEBUG

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ ARG ELEMENTAL_SERVER_MAX_BROKER="20"
3232
##
3333
# JVM maximum RAM use (as a percentage of RAM available to the Docker Container)
3434
ARG JVM_MAX_RAM_PERCENTAGE="75.0"
35+
# JVM Garbage Collector
36+
ARG JVM_GC="Z"
3537

3638
# JVM debugging protocol, suspend process on startup (y = Yes, n = No)
3739
ARG JVM_JDWP_SUSPEND="n"
@@ -51,6 +53,7 @@ FROM cgr.dev/chainguard/wolfi-base
5153
ARG ELEMENTAL_SERVER_CACHE_MEM
5254
ARG ELEMENTAL_SERVER_MAX_BROKER
5355
ARG JVM_MAX_RAM_PERCENTAGE
56+
ARG JVM_GC
5457
ARG JVM_JDWP_SUSPEND
5558
ARG JVM_JDWP_ADDRESS
5659
ARG ADDITIONAL_JAVA_TOOL_OPTIONS
@@ -93,7 +96,7 @@ ENV CLASSPATH="/elemental/lib/${elemental.uber.jar.filename}"
9396

9497
ENV JAVA_HOME="/usr/lib/jvm/java-21-openjdk"
9598

96-
ENV JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF-8 -Djava.awt.headless=true -Dorg.exist.db-connection.cacheSize=${ELEMENTAL_SERVER_CACHE_MEM}M -Dorg.exist.db-connection.pool.max=${ELEMENTAL_SERVER_MAX_BROKER} -Dlog4j.configurationFile=/elemental/etc/log4j2.xml -Dexist.home=/elemental -Dexist.configurationFile=/elemental/etc/conf.xml -Djetty.home=/elemental -Dexist.jetty.config=/elemental/etc/jetty/standard.enabled-jetty-configs -XX:+UseNUMA -XX:+UseZGC -XX:+UseContainerSupport -XX:MaxRAMPercentage=${JVM_MAX_RAM_PERCENTAGE} -XX:+ExitOnOutOfMemoryError -agentlib:jdwp=transport=dt_socket,server=y,suspend=${JVM_JDWP_SUSPEND},address=${JVM_JDWP_ADDRESS} ${ADDITIONAL_JAVA_TOOL_OPTIONS}"
99+
ENV JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF-8 -Djava.awt.headless=true -Dorg.exist.db-connection.cacheSize=${ELEMENTAL_SERVER_CACHE_MEM}M -Dorg.exist.db-connection.pool.max=${ELEMENTAL_SERVER_MAX_BROKER} -Dlog4j.configurationFile=/elemental/etc/log4j2.xml -Dexist.home=/elemental -Dexist.configurationFile=/elemental/etc/conf.xml -Djetty.home=/elemental -Dexist.jetty.config=/elemental/etc/jetty/standard.enabled-jetty-configs -XX:+UseNUMA -XX:+Use${JVM_GC}GC -XX:+UseContainerSupport -XX:MaxRAMPercentage=${JVM_MAX_RAM_PERCENTAGE} -XX:+ExitOnOutOfMemoryError -agentlib:jdwp=transport=dt_socket,server=y,suspend=${JVM_JDWP_SUSPEND},address=${JVM_JDWP_ADDRESS} ${ADDITIONAL_JAVA_TOOL_OPTIONS}"
97100

98101
ENV PATH="/usr/lib/jvm/java-21-openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
99102

0 commit comments

Comments
 (0)