Docker部署SonarQube的详细流程

 更新时间:2022年02月07日 10:23:31   作者:爱学习de测试小白  
SonarQube是一款开源代码检测工具,运作流程是这样的,先通过 sonar-scanner 插件扫描代码,把数据存储到数据库,sonarQube 读取数据库,将数据库展现在 web 平台,本篇介绍通过 docker 来安装,感兴趣的朋友一起看看吧

前言

本篇来学习使用docker部署代码检测工具–SonarQube

简介

SonarQube: 是一款开源代码检测工具。本篇介绍通过 docker 来安装。大概的一个运作流程是这样的,先通过 sonar-scanner 插件扫描代码,把数据存储到数据库,sonarQube 读取数据库,将数据库展现在 web 平台。

安装MySQL

1. 拉取mysql 镜像

(sonarqube:7.4 不支持 mysql:5.7 以上)

docker pull mysql:5.7

2. 创建网络

docker network create sonarqube-tier

3. 创建并运行容器

  • 创建挂载目录:mkdir /usr/mysql
  • 执行下面命令启动容器
docker run --name mysql -d -p 3306:3306 --net sonarqube-tier -v /usr/mysql/conf:/etc/my.cnf.d -v /usr/mysql/logs:/logs -v /usr/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
--restart always \
--privileged=true \
--network-alias mysql \
mysql:5.7

参数说明

-p 3306:3306:将容器 3306 映射到宿主机端口 3306
-v /usr/mysql/conf:/etc/my.cof.d:将容器下的 /etc/my.cof.d 挂载到宿主机 /usr/mysql/conf
-e MYSQL_ROOT_PASSWORD=123456:设置 root 密码 123456
--restart always:容器退出时总是重启
--privileged=true:挂载主机目录Docker访问出现Permission denied的解决办法
--net sonarqube-tier:容器接入自定义网络
--network-alias mysql:给容器起个网络别名

查是否正常运行:docker ps

4. 允许外网访问

进入容器

docker exec -it mysql /bin/bash

设置mysql访问权限

mysql -uroot -p  # 密码 123456
GRANT ALL ON *.* TO 'root'@'%';  #所有网络都可访问
create database sonar;     #创建 sonarqube 数据库

# 添加远程登录用户:sonar ,并授予权限。
CREATE USER 'sonar'@'%' IDENTIFIED WITH mysql_native_password BY 'sonar';  
GRANT ALL PRIVILEGES ON *.* TO 'sonar'@'%';

flush privileges;    # 刷新权限

安装SonarQube

1.拉取镜像

7.6及以上的版本与 jenkins 的 sonar-scanner 插件暂时不兼容,我这里拉取的是7.4-community

docker pull sonarqube:7.4-community

2. 创建工作目录

mkdir -p /data/sonarqube

3.运行容器

docker run -d --name sonartest sonarqube:7.4-community

复制容器内重要文件到宿主机

docker cp sonartest:/opt/sonarqube/conf /data/sonarqube
docker cp sonartest:/opt/sonarqube/data /data/sonarqube
docker cp sonartest:/opt/sonarqube/logs /data/sonarqube
docker cp sonartest:/opt/sonarqube/extensions /data/sonarqube

删除容器

docker rm sonartest

修改文件夹权限

chmod -R 777 /data/sonarqube/

4.创建容器并运行

docker run -d --name sonar -p 9090:9000 \
 -e ALLOW_EMPTY_PASSWORD=yes \
 -e SONARQUBE_DATABASE_USER=sonar \
 -e SONARQUBE_DATABASE_NAME=sonar \
 -e SONARQUBE_DATABASE_PASSWORD=sonar \
 -e SONARQUBE_JDBC_URL="jdbc:mysql://mysql:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" \
 --net sonarqube-tier \
 --privileged=true \
 -v /data/sonarqube/logs:/opt/sonarqube/logs \
 -v /data/sonarqube/conf:/opt/sonarqube/conf \
 -v /data/sonarqube/data:/opt/sonarqube/data \
 -v /data/sonarqube/extensions:/opt/sonarqube/extensions\
 sonarqube:7.4-community

5.打开SonarQube页面

  • 浏览输入http://宿主机ip:9090
  • 初始账号和密码是admin

6.安装中文插件

插件下载地址:https://github.com/xuhuisheng/sonar-l10n-zh/releases/tag/sonar-l10n-zh-plugin-1.24

  • 将下载的jar包移动到 /data/sonarqube/extensions/plugins
  • 重启sonarqube:docker restart sonarqube镜像id

到此这篇关于Docker部署SonarQube的文章就介绍到这了,更多相关Docker部署SonarQube内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于Docker+Selenium Grid的测试技术应用示例代码

    基于Docker+Selenium Grid的测试技术应用示例代码

    Selenium Grid允许我们在多台计算机上并行运行测试,并集中管理不同的浏览器版本和浏览器配置。这篇文章给大家介绍基于Docker+Selenium Grid的测试技术应用示例代码,需要的朋友参考下吧
    2021-08-08
  • 一文带大家了解和使用Docker镜像仓库

    一文带大家了解和使用Docker镜像仓库

    本文主要介绍一下容器镜像仓库的使用,包括公有仓库和自己搭建的私有仓库,文中有详细的代码示例,以及图解,对我们了解和使用 Docker 镜像仓库有一定的帮助,需要的朋友可以参考下
    2023-06-06
  • 详解Docker如何在前端项目动态插入并使用变量

    详解Docker如何在前端项目动态插入并使用变量

    这篇文章主要为大家详细介绍如何在Docker前端镜像中设置变量以及使用变量的方法,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下
    2024-04-04
  • Docker 容器监控原理及 cAdvisor的安装与使用说明

    Docker 容器监控原理及 cAdvisor的安装与使用说明

    这篇文章主要介绍了Docker 容器监控原理及 cAdvisor的安装与使用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 在Linux Docker中部署RStudio Server实现远程访问的操作

    在Linux Docker中部署RStudio Server实现远程访问的操作

    下面介绍在Linux docker中安装RStudio Server并结合cpolar内网穿透工具,实现远程访问,docker方式安装可以避免很多问题,一键安装,如设备没有安装docker,需提前安装docker,对 Docker部署RStudio Server相关知识感兴趣的朋友一起看看吧
    2023-12-12
  • docker registry安装简单命令实现

    docker registry安装简单命令实现

    这篇文章主要介绍了docker registry安装详细介绍的相关资料,需要的朋友可以参考下
    2016-10-10
  • Docker系列之使用Docker Compose编排容器

    Docker系列之使用Docker Compose编排容器

    Docker Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,这篇文章主要介绍了Docker系列之使用Docker Compose编排容器,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Docker 网络命令详解

    Docker 网络命令详解

    这篇文章主要详细介绍了Docker 网络命令的相关资料,需要的朋友可以参考下
    2017-06-06
  • Docker挂载的三种方法及使用场景分析

    Docker挂载的三种方法及使用场景分析

    在Docker容器中,持久化存储和数据共享是非常重要的功能,Docker提供了三种主要的方法来实现宿主机和容器之间的数据挂载,本文将详细介绍这三种方法的基本语法,并探讨它们各自的使用场景,需要的朋友可以参考下
    2024-05-05
  • 基于安装docker desktop失败的解决方案

    基于安装docker desktop失败的解决方案

    这篇文章主要介绍了基于安装docker desktop失败的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11

最新评论