【问题标题】:How to increase java heap size in docker container? [closed]如何增加 docker 容器中的 java 堆大小? [关闭]
【发布时间】:2021-01-10 20:25:20
【问题描述】:

在 docker 容器中运行 selenium 测试时,我们遇到了 java 堆错误。我们尝试通过 MAVEN_OPTS 和 JAVA_OPTS 来增加堆大小,但都没有解决我们的问题。

docker run -e JAVA_OPTS='-Xmx3g -Xms3g'  MAVEN_OPTS='-Xmx2048m' oneapi_docker mvn clean install

还有我们的错误信息:OutOfMemory Java heap space

我只是添加了一个记录器信息来可视化运行测试时的内存消耗,似乎它没有受到影响。

- LoggerManager INFO : ========================== Memory Info    ==========================
- LoggerManager INFO : Free memory: 258 MB LoggerManager INFO : Allocated memory: 404 MB 
- LoggerManager INFO :    Max memory: 498 MB LoggerManager INFO : Total free memory: 352 MB
- LoggerManager INFO :    =================================================================

我们的 docker 文件是这样的;

#Step 0: Choose base
FROM maven:latest
#Step 1 : Install the pre-requisite

COPY . .

RUN mkdir -p /root/.m2 \
    && mkdir /root/.m2/repository
    
COPY settings.xml /root/.m2

ARG JAVA_OPTS
ARG MAVEN_OPTS

RUN echo $MAVEN_OPTS
RUN echo $JAVA_OPTS

【问题讨论】:

  • @GiorgiTsiklauri 不,不是。
  • 我不确定这个问题是否有通用答案——这取决于基本映像的实现方式。一些基于 Java 的图像尊重广泛使用的环境变量,如 JAVA_OPTS,但许多不尊重。据我所知,在 Maven 映像中没有这方面的文档,而且我通常发现没有更好的方法来解决这个问题,而不是进入正在运行的容器并查看脚本。

标签: java docker maven dockerfile


【解决方案1】:

您如何执行 Selenium 测试?如果通过 Surefire 或 Failsafe 插件,您需要告诉他们您想要增加堆大小。看到这个答案:java.lang.OutOfMemoryError: Java heap space in Maven

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 2012-09-26
    • 2013-12-24
    • 2022-11-21
    • 2012-12-07
    • 2013-01-26
    相关资源
    最近更新 更多