sonarqube 容器化部署 2 之多分支插件安装

新的需求

在容器化安装了sonarqube之后,又提出了新的要求,需要安装一个新的插件,需要把指定的文件放到指定的文件夹下面并修改权限为775。为了完成他的这个需求,有只有重新在原本镜像的基础上进行重新打包。

新的需求是为了让sonarqube支持多分支,需要安装一个插件**sonarqube-community-branch-plugin。因此我们先准备好插件文件sonarqube-community-branch-plugin-1.8.1.jar以及在sonarqube安装目录下的配置文件sonarqube/conf/sonar.properties。具体安装步骤为:

1、将jar文件拷贝到sonar安装目录下extensions/plugins/ 及 lib/common下, 并将权限设为775
2、在sonar安装目录下的config/sonar.properties中添加:
** **sonar.web.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin-1.8.1.jar=web
** **sonar.ce.javaAdditionalOpts=-javaagent:./extensions/plugins/sonarqube-community-branch-plugin-1.8.1.jar=ce

重新打包镜像

据此我们编写dockerfile**

FROM sonarqube:lts-community
ADD sonarqube-community-branch-plugin-1.8.1.jar /opt/sonarqube/extensions/plugins/sonarqube-community-branch-plugin-1.8.1.jar
ADD sonarqube-community-branch-plugin-1.8.1.jar /opt/sonarqube/lib/common/sonarqube-community-branch-plugin-1.8.1.jar
ADD sonar.properties /opt/sonarqube/conf/sonar.properties
RUN  chmod 775 /opt/sonarqube/lib/common/sonarqube-community-branch-plugin-1.8.1.jar 

引用原本的镜像,在此基础上,添加两个jar文件到指定的目录。并且手动编辑好**sonar.properties文件,复制到镜像里面覆盖原来的配置。最后将lib/common/sonarqube-community-branch-plugin-1.8.1.jar权限设为775。

编写好之后,开始打镜像**docker build -t image-name .

编写好的镜像可以直接运行,就可以实现多分支功能啦。**

部署到k8s

根据之前我们已经编写过k8s的deployment-yaml了。我们只需要更改镜像的版本就好了。**

注意:如果您使用的是之前将extensions/plugins挂载到本机,则需要将文件复制到挂载出的目录/opt/sonarqube/extensions/plugins/sonarqube-community-branch-plugin-1.8.1.jar下面,因为k8s的挂载会覆盖原本的数据。同时也可以删除ADD sonarqube-community-branch-plugin-1.8.1.jar /opt/sonarqube/extensions/plugins/sonarqube-community-branch-plugin-1.8.1.jar

image.png

   
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口

    29 引用
  • k8s

    10 引用