关于docker:Docker中java进程pid为1问题

Dockerfile中如果通过ENTRYPOINT 间接执行java -jar命令,会发现在容器中的java过程id是1,这会给应用jstack、jmap查看jvm带来艰难,除了网上较多提到的应用tini来解决外,通过sh简略再开一个子过程也是能够的:
实现写好run.sh脚本放到我的项目中:

#!/bin/sh
java $JAVA_OPTS   -jar tmp/$appName.jar

调整dockerfile:

COPY ./target/$appName.jar /tmp
ENTRYPOINT [ "sh","-c","/tmp/run.sh"]

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理