Linux环境下使用Docker安装SonarQube的完整教程

系统环境:Centos7.8

SonarQube版本:Community EditionVersion 8.5.1 (build 38104)

直接开干,跑起来再说!!

查看SonarQube官方镜像
在这里插入图片描述

开始操作啦!!!!!!!!!

# 拉取镜像 
docker pull sonarqube
# 或者指定版本(8.5.1是当前最新的)
# docker pull sonarqube:8.5.1-community

# 创建映射目录
mkdir -p /opt/sonarqube/data
mkdir -p /opt/sonarqube/extensions 
mkdir -p /opt/sonarqube/logs
mkdir -p /opt/sonarqube/temp

# 修改宿主机最大内存映射区域数
# 临时修改,系统重启后失效
sysctl -w vm.max_map_count=262144
# 永久修改,编辑 /etc/sysctl.conf 文件,添加 vm.max_map_count=262144
vi /etc/sysctl.conf

# 初始化数据库,此处使用Postgres数据库,这里就不讲postgres数据库的安装了
DROP DATABASE IF EXISTS sonarqube;
CREATE DATABASE sonarqube WITH  ENCODING = 'UTF8';
CREATE USER sonarqube WITH PASSWORD 'sonarqube';
GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonarqube;
GRANT ALL PRIVILEGES ON all tables in schema public TO sonarqube;

# 运行容器
docker run -d --name sonarqube -p 9000:9000 \
-v /opt/sonarqube/data:/opt/sonarqube/data \
-v /opt/sonarqube/extensions:/opt/sonarqube/extensions \
-v /opt/sonarqube/logs:/opt/sonarqube/logs \
-v /opt/sonarqube/temp:/opt/sonarqube/temp \
-e SONAR_JDBC_URL="jdbc:postgresql://127.0.0.1:5432/sonarqube?useUnicode=true&characterEncoding=utf-8" \
-e SONAR_JDBC_USERNAME="sonarqube" \
-e SONAR_JDBC_PASSWORD="sonarqube" \
-e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true \
sonarqube:latest

一顿操作猛如虎,没有错误信息,启动成功!(注:实际中一大堆问题,后面说…)

访问http://${ip}:9000 默认账户密码admin/admin
在这里插入图片描述
操作界面全英文,如果需要中文,可以通过安装中文插件的方式汉化。

见如下图操作:
Administration -> Marketplace -> Plugins 中输入 Chinese -> 选择第一个Install
在这里插入图片描述

OK,基本上是完成了SonarQube的安装了!


下面说说遇到的问题:(列举了几个重要的)

  1. 新版的SonarQube(7.9+)只支持以下数据库:
    Microsoft SQL ServerOraclePostgreSQLH2 (默认的嵌入式数据库)
    注意不再支持MySQL,使用MySQL数据源启动会报错:
    Exception in thread "main" org.sonar.process.MessageException: Unsupported JDBC driver provider: mysql

  2. SonarQube内置了ElasticSearch,需要调整默认的vm.max_map_count信息,不然启动会报错:
    ERROR: [1] bootstrap checks failed [1]: max virtual memory areas vm.max_map_count
    在宿主机中执行以下命令:sysctl -w vm.max_map_count=262144

  3. 7.9版本后就不支持MYSQL了
    默认是H2在这里插入图片描述
    默认H2启动的,界面会提示以下信息
    在这里插入图片描述

  4. 新版SonarQube没有/opt/sonarqube/conf目录了,不需要再做数据卷映射,否则启动报错。


版权声明:本文为java_chris原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。