无法在 docker 镜像中传递 --add-opens jvm 参数

问题描述 投票:0回答:1

嗨,我有一个 docker 映像,它运行一个 spring boot 服务,我需要向其传递 --add-opens 参数。以下是我的 docker 文件的内容

FROM amazoncorretto:21.0.4

ENV JAVA_TOOL_OPTIONS="-Xms2g -Xmx8g -XX:MaxMetaspaceSize=512M -XX:+UseG1GC --add-opens java.base/java.lang=ALL-UNNAMED"

# Add the JAR file to the container
ADD target/evaluation-service.jar evaluation-service.jar


# Define the entry point
ENTRYPOINT ["java", "-jar", "evaluation-service.jar"]

为了运行此图像,我使用以下命令

docker run --platform linux/arm64 -d --expose 8302 -p 8302:8302 --memory=8g  --name evaluation  285bc34ead55   --server.port=8302 

但是当我运行此命令时,出现以下错误

Picked up JAVA_TOOL_OPTIONS: -Xms2g -Xmx8g -XX:MaxMetaspaceSize=512M -XX:+UseG1GC --add-opens java.base/java.lang=ALL-UNNAMED
Unrecognized option: --add-opens
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit

如果我从 jvm 参数中删除“--add-opens java.base/java.lang=ALL-UNNAMED”,则映像启动时不会出现任何问题。我在这里做错了什么?

java spring-boot docker jvm jvm-arguments
1个回答
0
投票

如果在JAVA_TOOL_OPTIONS中使用,我认为你必须在

=
后面加上等号
--add-opens
,这样你就会有:

--add-opens=java.base/java.lang=ALL-UNNAMED

根据我的经验,当使用 JDK_JAVA_OPTIONS 时,没有等号它可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.