Skip to content

Commit 6e17965

Browse files
committed
[feature] Allow additional Java Garbage Collector to be set at Docker Container build time
1 parent e13b901 commit 6e17965

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="G1"
3537

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

6366
# Copy over dependencies for updated JRE from Wolfi
@@ -121,7 +124,7 @@ ENV CLASSPATH="/elemental/lib/${elemental.uber.jar.filename}"
121124

122125
ENV JAVA_HOME="/usr/lib/jvm/java-1.8-openjdk"
123126

124-
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:+UseG1GC -XX:+UseStringDeduplication -XX:+UseContainerSupport -XX:MaxRAMPercentage=${JVM_MAX_RAM_PERCENTAGE} -XX:+ExitOnOutOfMemoryError ${ADDITIONAL_JAVA_TOOL_OPTIONS}"
127+
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:+Use${JVM_GC}GC -XX:+UseStringDeduplication -XX:+UseContainerSupport -XX:MaxRAMPercentage=${JVM_MAX_RAM_PERCENTAGE} -XX:+ExitOnOutOfMemoryError ${ADDITIONAL_JAVA_TOOL_OPTIONS}"
125128

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

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="G1"
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-1.8-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:+UseG1GC -XX:+UseStringDeduplication -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:+Use${JVM_GC}GC -XX:+UseStringDeduplication -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-1.8-openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
99102

0 commit comments

Comments
 (0)