使用Docker搭建Sonar工程質量管理平臺

關於Docker的基礎知識詳見下面幾篇文章nginx

Docker及圖形化管理UI Portainer的搭建sql

Dockerfile的使用以及使用Maven工程TCP構建遠程鏡像docker

利用Docker實現後臺項目模板化配置部署數據庫

1、什麼是Sonar?

Sonar是一個用於代碼質量管理的開源平臺,用於管理代碼的質量,經過插件形式能夠支持二十幾種語言的代碼質量檢測,經過多個維度的檢查了快速定位代碼中潛在的或者明顯的錯誤。bash

2、使用Docker搭建Sonar平臺

(1)搜索搭建Sonar必要的Docker鏡像

Sonar須要數據庫的支持,這裏咱們採用的是Postgres數據庫,因此咱們須要下載SonarPostgres的Docker鏡像markdown

(2)使用Docker搭建Postgres數據庫

  • 首先咱們須要給數據庫分配一個磁盤空間,這裏咱們建立一個虛擬磁盤用做數據庫存儲的空間

  • 使用Postgres Docker鏡像一句話搭建Postgres數據庫
docker run --name postgresql -p 5432:5432 -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -e POSTGRE_DB=sonar -v postgres_volume:/var/lib/postgresql/data -d postgres
複製代碼
  • 容器啓動完成以後使用IDEA數據庫插件檢測是否搭建完成

(3)使用Docker搭建Sonar,而且關聯Postgres數據庫

  • 咱們能夠把一些Sonar經常使用的磁盤目錄掛載出來,例如Sonar的/opt/sonarqube/data和/opt/sonarqube/extensions,因此咱們這裏仍是同樣,新建2個虛擬磁盤

  • 使用Docker鏡像一句話關聯Postgres數據庫以及掛載虛擬磁盤
docker run --name sonarqube --link postgresql -e SONARQUBE_JDBC_URL=jdbc:postgresql://postgresql:5432/sonar -p 9001:9000 -d -v sonar_data:/opt/sonarqube/data -v sonar_extensions:/opt/sonarqube/extensions sonarqube
複製代碼
  • 配置nginx,啓動域名訪問
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush on;

    keepalive_timeout  65;

    #gzip on;

    server {
        listen 80;
        server_name docker.xyz.cn;
        location / {
            proxy_pass http://192.168.27.180:9000;
        }
    }
    
    server {
        listen 80;
        server_name filebrowser.xyz.cn;
        location / {
            proxy_pass http://192.168.27.180:3000;
        }
    }
    
    server {
        listen 80;
        server_name sonar.xyz.cn;
        location / {
            proxy_pass http://192.168.27.180:9001;
        }
    }
}
複製代碼
  • 待容器啓動完成以後,便可經過sonar.xyz.cn訪問Sonar

3、Sonar的漢化

很簡單,目前版本的Sonar已經有對應插件支持,配置-應用市場直接搜索Chinese Pack便可app

相關文章
相關標籤/搜索