jumpServer添加自定义服务

jumpServer添加自定义服务

一、需求

项目中为了节省资源并且方便日后统一管理,需要将一些不太重要的服务整合到一起。一个mysql或redis容器同时为多个不同的系统提供服务,加快一些边缘服务的部署。jms本身自带一大堆组件服务,比如redis、mysql、nginx等,基本上全家桶了,开发测试都习贯连到jms的组件服务上。但是,有时候想要的服务在jms上又没有,比如要添加一个rabbit-mq或者caddy,单纯docker run xxx或docker-comose up的话,默认运行的容器网络与已有的jms网络不共存,而且各服务启停要分开管理,不太方便。

为了解决这个问题,开始研究怎么往jumpServer里添加自定义服务。通过分析jms源码,很顺利的实现了,这里以caddy为例做介绍。

二、实现

jumpserver所有服务的启停是通过容器编排实现的,在installer/compose目录里有大量的编排文件,猜测它是通过docker-compose -f xx1.yml -f xx2.yml -f xx3.yml up来批量管理的。在分析jmsctl文件后,找到 get_docker_compose_cmd_line,估计就是用来获取编排文件,全局搜索,果然在scripts/utils.sh里找到它。

看一眼function get_docker_compose_cmd_line(),很容易就知道它在拼接编排文件,故在这里加入caddy的编排,然后jmsctl start,caddy服务正常起来,全剧终!

image-20231216013420972

评论已关闭