jattach 还是一直在更新的,而且目前也支持openj9 了同时对于容器也有了更好的支持

让我们可以更好的使用一个轻量工具实现 jmap+jcmd+jstack+jinfo 的能力 (而且不需要安装jdk)

而且目前还包含了直接基于软件包进行安装

tomcat java 容器

容器没有包含jdk


 


FROM tomcat:9.0.56-jre8-openjdk-slim-buster



COPY jattach /usr/bin/jattach



RUN chmod +x  /usr/bin/jattach


使用


  • 环境准备

 


version: '3'



services:



app:



build: ./



image: dalongrong/tomcat:9.0.56-jre8-openjdk-slim-buster-jattach



ports:



- "8080:8080"



  • 使用
    直接使用jattach包含的命令进行java 应用分析





 

docker-compose up -d



docker-compose exec app sh



jattach 1 jcmd Thread.print


说明

以上是一个容器包含jattach的简单集成,使用jattach 替换jdk 是一个很不错的选择(可以减小我们的容器镜像)

参考资料

​https://github.com/apangin/jattach/releases/tag/v2.0​