JAVA_OPTS在Java Docker映像中设置-Xmx无效?

fzsnzjdm  于 2023-01-04  发布在  Java
关注(0)|答案(1)|浏览(466)

我的理解是Docker容器中的最大Java内存量取决于Docker约束和JVM设置。然而,我在Max Heap Size中看到的唯一更改取决于docker --memory参数。例如,我在这里启动了一个打印Max memory设置的Java程序(openjdk 17):

docker run -it -e JAVA_OPTS="-Xmx1g" --memory 2g javatest
Max Heap Size = maxMemory() = 536870912

同样,更改JAVA_OPTS:

docker run -it -e JAVA_OPTS="-Xmx64mb" --memory 2g javatest
Max Heap Size = maxMemory() = 536870912

停靠文件:

FROM openjdk:17
COPY ./Example.class /tmp
WORKDIR /tmp
ENTRYPOINT ["java","Example"]

有没有其他的环境变量可以用来设置最大内存?

67up9zun

67up9zun1#

我认为使它工作的唯一方法是重写你的ENTRYPOINT以包括JAVA_OPTS env变量。

FROM openjdk:17
COPY ./Example.class /tmp
WORKDIR /tmp
ENTRYPOINT exec java $JAVA_OPTS Example

相关问题