首页 > 解决方案 > 如何在 Jenkins 官方 Docker 镜像中修改 Java 内存?

问题描述

我正在使用 jenkins 官方 docker 镜像

docker pull jenkins/jenkins:lts

我正在尝试优化 Xmx/Xms 内存配置,但没有成功。使用 JVM 选项运行容器会导致错误:

docker run jenkins/jenkins:lts --Xmx512m 

Exception in thread "main" java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at Main._main(Main.java:375)
        at Main.main(Main.java:151)
Caused by: java.lang.IllegalArgumentException: Unrecognized option: --Xmx512m
        at winstone.cmdline.CmdLineParser.parse(CmdLineParser.java:52)
        at winstone.Launcher.getArgsFromCommandLine(Launcher.java:371)
        at winstone.Launcher.main(Launcher.java:342)
        ... 6 more

有任何想法吗 ?谢谢

标签: javadockerjenkins

解决方案


根据“传递 JVM 参数”文档使用 JAVA_OPTS 环境变量。您需要设置-Xmx选项:

docker run --name myjenkins -p 8080:8080 -p 50000:50000 --env JAVA_OPTS=-Xmx1g jenkins/jenkins:lts

您可能需要自定义运行 Jenkins 的 JVM,通常是为了传递系统属性(道具列表)或调整堆内存设置。为此目的使用 JAVA_OPTS 环境变量:


推荐阅读