0、docker安装:

本文使用的硬件环境:

       MacOS Catalina 版本:10.15.3

docker官方下载mac下的docker app,安装完成即可。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

 

Docker 包括三个基本概念:

  • 镜像(Image):Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
  • 容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
  • 仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。

 Docker 下,搭建 SonarQube 环境 (数据库为 postgres)

 

 

Docker 下,搭建 SonarQube 环境 (数据库为 postgres)
 

 



1、安装postgresql数据库

1.1 终端命令中,拉取postgres镜像

       docker pull postgres

 

Docker 下,搭建 SonarQube 环境 (数据库为 postgres)
 Docker 下,搭建 SonarQube 环境 (数据库为 postgres)

 

 

 

1.2 运行镜像容器:

docker命令:

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

--name: 容器名称 此为处db

-e:使用值docker将名称为POSTGRES_PASSWORD,POSTGRES_USER的环境变量暴露给容器。

       POSTGRES_PASSWORD环境变量设置PostgreSQL的超级用户密码。

       您可以设置其他环境变量。这些包括POSTGRES_USER和POSTGRES_DB。

        POSTGRES_USER设置超级用户名。如果未提供,则超级用户名默认为postgres。

        POSTGRES_DB设置要设置的默认数据库的名称。如果未提供,则默认为POSTGRES_USER的值。

        此处设置的为:数据库名为sonar,超级用户名为sonar,密码为sonar.

-d: 后台运行容器,并返回容器ID


执行效果:

Docker 下,搭建 SonarQube 环境 (数据库为 postgres)
 Docker 下,搭建 SonarQube 环境 (数据库为 postgres)

 

 Docker 下,搭建 SonarQube 环境 (数据库为 postgres)

 

 

 

 

Docker 下,搭建 SonarQube 环境 (数据库为 postgres)
 

 

 

Docker 下,搭建 SonarQube 环境 (数据库为 postgres)
 

 

 

如此简单安装好postgres数据库了。

如果不用docker这玩意:

1、去官网下载一个最新版本的postgres(根据设备系统去下载)

2、根据平台去安装,不同系统上安装还会有一些不同的坑。

3、使用pgAdmin连接postgres数据库,创建sonar用户,创建sonar数据库。

这一顿操作得花半小时去了。

使用docker下来,下载速度快的话,不要5分钟,game over.



2、安装SonarQube,并配置数据库连接。

2.1 下载sonarQube镜像:

docker命令:

        docker pull sonarqube

 

2.2 启动sonar,并配置数据库为1中的postgres

docker命令:

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

     --name:容器名称 此为处sonar

      --link:与其它容器通信。

            --link 容器名称 此处为与名为db的容器,即postgres的数据库。

            添加了SONARQUBE_JDBC_URL环境变量为 jdbc:postgresql://容器名称:端口/数据库名称 (数据库连接驱动)

            添加了SONARQUBE_JDBC_USERNAME环境变量为sonar(数据库连接用户名)

            添加了SONARQUBE_JDBC_PASSWORD环境变量为sonar(数据库连接密码)

    -p: 指定端口映射,格式为:主机(宿主)端口:容器端口

 

运行效果:

 Docker 下,搭建 SonarQube 环境 (数据库为 postgres)

 

 Docker 下,搭建 SonarQube 环境 (数据库为 postgres)

 

 

 

在浏览器当中,访问:http://localhost:9000

 Docker 下,搭建 SonarQube 环境 (数据库为 postgres)

 

 

Docker 下,搭建 SonarQube 环境 (数据库为 postgres)
 

 



sonarqube能够正常访问之后,就可以开始扫描项目代码啦。

扫描java项目代码请参考:https://www.cnblogs.com/Simple-Small/p/12973208.html

 Docker 下,搭建 SonarQube 环境 (数据库为 postgres)

 

 

Docker 下,搭建 SonarQube 环境 (数据库为 postgres)

 

相关文章: