docker+sonarqube

Docker 安装配置

下载安装

官网镜像可能由于网络的原因下载缓慢,点击这个连接参考阿里云镜像加速

Docker官网

  • 点击:Download from Docker Store
  • 下拉页面——选择版本
    • Stable 季度版本
    • Edge 月版本


      docker+sonarqube_第1张图片
      image.png
  • 点击如下页面下载


    docker+sonarqube_第2张图片
    image.png
  • 下载安装注册登录完毕后,进入简单使用

使用

通常是在 终端 里,输入以下命令,检测 docker 安装情况:

>  docker --version
Docker version 19.03.2, build 6a30dfc
>  docker-compose --version
docker-compose version 1.24.1, build 4667896b
>  docker-machine --version

或者输入

> docker version
Client: Docker Engine - Community
 Version:           19.03.2
 API version:       1.40
 Go version:        go1.12.8
 Git commit:        6a30dfc
 Built:             Thu Aug 29 05:26:49 2019
 OS/Arch:           darwin/amd64
 Experimental:      false
........
> docker info
Client:
 Debug Mode: false
.......
  • 开启容器
    输入以下命令:
docker run -d -p 80:80 --name webserver nginx

这里是为了将本机的80端口映射到 docker 里的80端口,容器名为 webserver
然后访问 http://localhost ,就看到配好的 nginx

docker+sonarqube_第3张图片
image.png

  • 关闭容器

关闭Docker,需要知道 容器的id ,使用 docker ps -a 或者 docker images命令

 >  docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                        PORTS                NAMES
696cd082a736        nginx               "nginx -g 'daemon of…"   54 minutes ago      Exited (255) 27 minutes ago   0.0.0.0:80->80/tcp   webserver
>   docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
mysql               5.7                 cd3ed0dfff7e        22 hours ago        437MB
nginx               latest              5a9061639d0a        22 hours ago        126MB

dockerId:"696cd082a736";
关闭时输入前几位id号即可

 docker stop 96d0
  • 删除容器
docker rm -f webserver

安装Kitematic

  • docker GUI工具,图形界面化管理Docker容器

  • 点击安装Kitematic


    docker+sonarqube_第4张图片
    image.png
  • 登录(docker的用户名和密码)


    docker+sonarqube_第5张图片
    image.png

    docker+sonarqube_第6张图片
    image.png

Mysql+sonarqube配置准备

参见sonarqube镜像说明 最新版本是7.9已不再支持mysql,如果需要安装7.9以上版本的sonarqube就不能再搭配mysql使用

Mysql安装配置参见链接

创建sonar数据库和sonar用户

  • 登录mysql(已登录就忽略)
mysql -u root -p
  • 创建sonar数据库
create database sonar;
CREATE USER 'sonar'@'%' IDENTIFIED  BY 'sonar';
GRANT ALL PRIVILEGES ON *.* TO 'sonar'@'%';

安装postgres

docker pull postgres

启动postgres

docker run --name db -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d postgres

Sonarqube安装配置

docker pull sonarqube

Sonarqube官网介绍

  • 在宿主机上新建目录sonarqube:conf,data,logs,extensions
mkdir /software/sonarqube/conf

mkdir /software/sonarqube/data

mkdir /software/sonarqube/logs

mkdir  /software/sonarqube/extensions
  • 运行容器(绑定安装配置)

postgres

简单命令:

docker run --name sq --link db -e SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar -p 9000:9000 -d sonarqube

绑定安装配置命令

docker run --name sonarqube -d \
-p 9002:9000 -p 9092:9092 \
-v /software/sonarqube/conf:/opt/sonarqube/conf \
-v /software/sonarqube/data:/opt/sonarqube/data \
-v /software/sonarqube/logs:/opt/sonarqube/logs \
-v /software/sonarqube/extensions:/opt/sonarqube/extensions \
sonarqube

ps:

mysql(绑定安装配置)

docker run --name sonarqube -d \
-p 9002:9000 -p 9092:9092 \
-e SONARQUBE_JDBC_USERNAME=sonar \
-e SONARQUBE_JDBC_PASSWORD="sonar" \
-e SONARQUBE_JDBC_URL="jdbc:mysql://localhost:3307/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false  1"
" \
-v /software/sonarqube/conf:/opt/sonarqube/conf \
-v /software/sonarqube/data:/opt/sonarqube/data \
-v /software/sonarqube/logs:/opt/sonarqube/logs \
-v /software/sonarqube/extensions:/opt/sonarqube/extensions \
sonarqube

参数解释:
-d: 后台运行容器,并返回容器ID;
-p: 端口映射,格式为:主机(宿主)端口:容器端口。-p 9002:9000是将容器9000端口映射为9002,因为宿主9000端口已经被占用
--name=sonarqube: 为容器指定一个名称;
-e设置环境变量,此变量会传递到COMMAND中

Sonarquebe使用

1、在浏览器中输入

http://localhost:9000
账号:admin密码:admin

docker+sonarqube_第7张图片
image.png

2.安装中文汉化包
Administration -> Marketplace ,搜索 chinese , install Chinese Pack,然后重启
image.png

3.添加项目

  • maven


    docker+sonarqube_第8张图片
    image.png
  • gradle
    1.方法1
    创建新项目
    docker+sonarqube_第9张图片
    image.png

    创建令牌,添加配置文件
    docker+sonarqube_第10张图片
    image.png

问题点:
1.gradlew 命令可能没有配置,使用gradle wrapper
2.执行编译命令后可能会报下面的类似错误,包下载失败,使用下面的方法2,导入项目即可
> Task :compileJava Errors occurred while build effective model from /Users/.gradle/caches/modules-2/files-2.1/com.alibaba/druid/1.0.31/d4ed19f55d238c8e3eac07b4a81e896c1dd8436d/druid-1.0.31.pom: 'dependencies.dependency.systemPath' for com.alibaba:jconsole:jar must specify an absolute path but is ${env.JAVA_HOME}/lib/jconsole.jar in com.alibaba:druid:1.0.31 'dependencies.dependency.systemPath' for com.alibaba:tools:jar must specify an absolute path but is ${env.JAVA_HOME}/lib/tools.jar in com.alibaba:druid:1.0.31 Errors occurred while build effective model from /Users/.gradle/caches/modules-2/files-2.1/com.sun.xml.bind/jaxb-impl/2.2.11/2d4b554997fd01d1a2233b1529b22fc9ecc0cf5c/jaxb-impl-2.2.11.pom:

2.方法2
(1) gradle配置文件加入:

plugins {
    id "org.sonarqube" version "2.7"
}
sonarqube {
    properties {
        property "sonar.host.url", "http://localhost:9000"
        property "sonar.login", "admin"
        property "sonar.password", "admin"
    }
}

(2) 执行命令:
gradle wrapper clean test sonar

(3) 导入项目。

你可能感兴趣的:(docker+sonarqube)