我正在以Docker容器的身份运行Micronaut应用程序。
在Kuberentes的运行时,将有一个具有一定值的JAVA_OPTS环境变量,例如:-XX:MaxRAMPercentage=45.0
在执行./gradlew dockerBuild时,我可以看到以下Docker层:
Step 7/7 : ENTRYPOINT ["java", "-jar", "/home/app/application.jar"]
在文档之后,我尝试添加对JAVA_OPTS的引用:
build.gradle.kts
dockerfile {
args("\$JAVA_OPTS")
}Docker构建日志:
Step 7/7 : ENTRYPOINT ["java", "$JAVA_OPTS", "-jar", "/home/app/application.jar"]这方面的问题是容器不会启动,因为$JAVA_OPTS不会被env变量值替换。这是因为它使用入口点的exec格式。
是否有一种方法可以覆盖或调优入口点,以便对env进行评估?
发布于 2022-01-04 15:06:31
在链接到您的文档中之后,您似乎可以执行如下操作,根据在命令中解释env的要求,重写入口点:
entryPoint('sh', '-c', 'java $JAVA_OPTS -jar /home/app/application.jar')它应该在生成的Dockerfile中转换为以下内容:
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar /home/app/application.jar"]https://stackoverflow.com/questions/70579994
复制相似问题