嗨,我有一个 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_TOOL_OPTIONS中使用,我认为你必须在
=
后面加上等号--add-opens
,这样你就会有:
--add-opens=java.base/java.lang=ALL-UNNAMED
根据我的经验,当使用 JDK_JAVA_OPTIONS 时,没有等号它可以工作。