Docker中java进程pid为1问题
2021-11-09 本文已影响0人
湘西刺客王胡子
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"]