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

37次阅读

共计 264 个字符,预计需要花费 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"]

正文完
 0