关于将oneApm agent作为Java基础镜像使用

docker
dockerfile
ai

#1

旨在提供思路。

  1. 基本需求:实现Java App自定义环境变量参数或者挂载配置集操作oneApm,并根据变量实现是否需要开启。

2.方案基本架构:
oneApm

  1. 实现方案

a. 每个项目编写脚本,实现脚本控制是否引入oneapm探针,同时脚本控制编排文件实现是否启用。

该方案需要对每个应用项目进行引入脚本和jar,难以控制(人员项目分散)且不合规范,同时该脚本可行性待评估

b. 实现基础镜像封装oneapm探针,并对基础镜像进行参数化配置

该方案可以实现对原有项目基本0变动,针对需要实现的项目引入基础镜像即可。

  1. 实现步骤

a. 制作基础镜像

b. 项目引入

  1. 问题点

a. Mac运行出现Java不可运行二进制程序,是因为二进制文件为Linux版本。

通过修改源码中的Java为Mac中运行的Java(未实践)

ps: 采用remote模式跳过。

b. 基于centos sdk基础镜像必须交互式运行,否则则必须实现Java程序后台运行

自定义启动脚本实现参数化配置

c. 封装的基础镜像存在有时候搜集不到日志,重启容器服务解决。

  1. 项目地址

ps: 有兴趣的可以对脚本进行理解、优化,思路及最重要的点就是start.sh


#2

:+1:
感谢分享~