wordpress手机边距,厦门seo代运营,活动推广宣传方案,深圳租房建设局网站首页制作jdk17pinpoint-agent基础镜像
本文仅介绍制作镜像#xff0c;pinpoint 知识不在此介绍#xff0c;不了解 pinpoint 知识 #xff0c;请先行学习
1.背景介绍
新搭建的java应用#xff0c;基于 Springboot3.2.0 Spring6.1.1 jdk17 版本。
从Springboot3开始#x…制作jdk17pinpoint-agent基础镜像
本文仅介绍制作镜像pinpoint 知识不在此介绍不了解 pinpoint 知识 请先行学习
1.背景介绍
新搭建的java应用基于 Springboot3.2.0 Spring6.1.1 jdk17 版本。
从Springboot3开始jdk最低要求为jdk17因为之前 jdk1.8 pinpoint agent 镜像不能再使用。
在制作 jdk17 pinpoint-agent 基础镜像前需要用到 pinpoint agent 包。
在制作调试过程中发现 pinpoint官网 提供的 pinpoint agent 包都不支持jdk17。
下载2024/2/7下载pinpoint源码后查看最新master分支发现已在支持jdk17只是还处于快照版本未正式发布。
通过编译 pinpoint 源码后得到 pinpoint-agent-3.0.0-SNAPSHOT 包。
pinpoint-agent-3.0.0-SNAPSHOT 包计划沿用之前安装的 pinpoint collector 服务。
pinpoint collector 服务为10.28.19.106
2.编写dockerfile
准备好 pinpoint-agent-3.0.0-SNAPSHOT 包后再找一个jdk17基础镜像在此之上将 pinpoint agent 集成进去。
挑选jdk17基础镜像时对比分析了下镜像大小这里选择的是 eclipse-temurin:17.0.10_7-jre-alpine
脚本如下复制粘贴至命令控制台可在/opt目录下直接创建 jdk17-pinpoint.dockerfile
tee /opt/jdk17-pinpoint.dockerfile \EOF
# 基础镜像
FROM eclipse-temurin:17.0.9_9-jre-alpineLABEL maintainer胡桃夹子 infowangxin139.com# 环境变量设置
ENV TZAsia/Shanghai
ENV PINPOINT-javaagent:/opt/pinpoint-agent-3.0.0-SNAPSHOT/pinpoint-bootstrap.jar -Dprofiler.jdbc.mssqltrue -Dprofiler.jdbc.mssql.tracesqlbindvaluetrue# 安装包
COPY pinpoint-agent-3.0.0-SNAPSHOT.tar.gz /optRUN tar -vxf /opt/pinpoint-agent-3.0.0-SNAPSHOT.tar.gz -C /opt \ rm /opt/pinpoint-agent-3.0.0-SNAPSHOT.tar.gz
EOF上面dockerfile文件中-Dprofiler.jdbc.mssqltrue -Dprofiler.jdbc.mssql.tracesqlbindvaluetrue 这段可以选择去掉
这段是开启 pinpoint 打印 sqlserver sql 脚本及参数。
3.制作镜像
先获取jdk基础 eclipse-temurin:17.0.10_7-jre-alpine
docker pull eclipse-temurin:17.0.10_7-jre-alpinejdk基础镜像获取成功之后再进入opt目录构建 jdk17 pinpoint-agent 基础镜像
cd /opt
docker build --no-cache -f jdk17-pinpoint.dockerfile -t myharbor.com/java:17.0.10_7-jre-alpine-pinpoint .4.制作应用镜像
这里介绍如何与应用集成在一起制作docker镜像这里准备了demo.jar由 Springboot3.2.0 Spring6.1.1 jdk17 编译产生。
已完成了 demo.jar 测试可正常运行。
4.1 编写应用dockerfile
脚本如下复制粘贴至命令控制台可在/opt目录下直接创建 demo.dockerfile
tee /opt/demo.dockerfile \EOF
# 镜像模板
FROM myharbor.com/java:17.0.10_7-jre-alpine-pinpoint# 环境变量设置
ENV JARdemo.jar
ENV TZAsia/Shanghai# 添加标签使用构建参数
LABEL maintainer胡桃夹子 infowangxin139.com# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件并链接到容器的/tmp
VOLUME /tmp# 指定默认目录
WORKDIR /opt/app# 传包
COPY $JAR .# 设置Pinpoint Agent的相关环境变量
ENV PINPOINT_OPT$PINPOINT -Dprofiler.transport.grpc.collector.ip10.28.19.106# 带pinpoint-agent启动
ENTRYPOINT [ sh, -c, java ${PINPOINT_OPT} $JAVA_OPTS -Dfile.encodingUTF-8 -Dsun.jnu.encodingUTF-8 -DLANGen_US.UTF-8 -Djava.security.egdfile:/dev/./urandom -jar $JAR]
# 不带pinpoint-agent启动
# ENTRYPOINT [ sh, -c, java $JAVA_OPTS -Dfile.encodingUTF-8 -Dsun.jnu.encodingUTF-8 -DLANGen_US.UTF-8 -Djava.security.egdfile:/dev/./urandom -jar $JAR]
EOF4.2编写应用docker-compose
脚本如下复制粘贴至命令控制台可在/opt目录下直接创建 demo-docker-compose.yml
tee /opt/demo-docker-compose.yml \EOF
version: 3.1services:demo:image: myharbor.com/demo:0.0.1-SNAPSHOTcontainer_name: demoports:- 18899:8080environment:- JAVA_OPTS-Dpinpoint.applicationNamedemo -Dpinpoint.agentIddemo-108node
networks:devops:external:name: devops01
EOFdemo-docker-compose.yml 文件中的 pinpoint.applicationName 为pinpoint中展示的应用名、pinpoint.agentId 为节点名。
4.3应用测试
应用镜像构建
cd /opt
docker build --no-cache -f demo.dockerfile -t myharbor.com/demo:0.0.1-SNAPSHOT .应用启动服务
cd /opt
docker-compose -f demo-docker-compose.yml up -d观察 demo docker容器节点启动是否正常
docker logs -f --tail 1000 demo当 demo 容器节点日志最前面有出现 pinpoint agent 日志有打印 docker collector ip 等参数表示当前 demo 应用已成功集成。
浏览器访问应用再去 pinpoint web 中查看 demo 链路及日志情况。
至此完成 jdk17 pinpoint-agent 基础镜像制作及与应用如何集成等所有步骤。
引用Reference
CentOS8搭建nfs服务Kubernetes1.25.4版本安装kubeasz安装kubernetes1.25.5k8s一键安装redis单机版k8s一键安装mysql8单机版k8s部署springboot应用Docker安装及学习Docker制作springboot运行应用镜像Docker制作Java8环境镜像Docker安装Mysql5.7.31Docker安装Mysql8.1.0Elasticsearch单机版本安装Elasticsearch集群安装ELK安装Docker安装ELKzookeeper集群安装Nginx日志切割RabbitMQ集群安装Docker安装RabbitMQ单机版springboot集成prometheusgrafanawindows11安装android应用Windows下多个JDK版本快速切换MongoDB主从仲裁模式安装制作jdk17pinpoint-agent基础镜像