国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - 服務器知識 - 使用Docker安裝SonarQube的詳細教程

使用Docker安裝SonarQube的詳細教程

2021-11-19 16:49naumy 服務器知識

這篇文章主要介紹了Docker安裝SonarQube的教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

Docker安裝SonarQube的教程如下所示:

 

1.拉取鏡像

 

1.1拉取相關鏡像并運行

 

1.1.1拉取相關鏡像

# 拉取sonarqube鏡像
$ docker pull sonarqube:9.1.0-community (推薦使用) /  $ docker pull sonarqube:7.6-community
# 拉取postgres鏡像
$ docker pull postgres:9.6.23

 

1.1.2運行鏡像

# 運行postgres數據庫
$ docker run --name postgresqldb --restart=always -p 5432:5432 
-e POSTGRES_USER=root 
-e POSTGRES_PASSWORD=123456  
-d postgres:9.6.23

# 進入postgres容器,創建用戶名和密碼
$ docker exec -it postgresqldb bash

# 登錄數據庫
psql -U root -W
# 創建用戶名和密碼
create user sonar with password "sonar";
create database sonar owner sonar;
grant all privileges on database sonar to sonar;

# 不連接postgres數據庫運行命令(不推薦)
docker run --name sonarqube --restart=always -p 9000:9000 -d naumy/hitrend-sonarqube:v1.0

# 運行sonarqube容器
docker run -d --name sonarqube --restart=always 
-p 9000:9000  
-e sonar.jdbc.username=sonar 
-e sonar.jdbc.password=sonar 
-e sonar.jdbc.url=jdbc:postgresql://139.198.176.140:5432/sonar 
sonarqube:9.1.0-community

接著訪問:http://localhost:9000/ 就可以了,默認管理員用戶和密碼為:admin/admin

使用Docker安裝SonarQube的詳細教程

嵌入式數據庫應僅用于評估目的、嵌入式數據庫無法擴展,不支持升級到SonarQube的較新版本,也不支持將數據從中遷移到其他數據庫引擎。

 

1.2保存并提交已修改的鏡像

# 保存已經修的鏡像
docker commit -a "naumy"  -m "安裝中文插件" 19f1cc24dc98 hitrend-sonarqube:v1.0
# 把舊鏡像的名字,改成倉庫要求的新版名字
docker tag hitrend-sonarqube:v1.0 naumy/hitrend-sonarqube:v1.0
# 登錄到docker hub
docker login       
# 推送
docker push naumy/hitrend-sonarqube:v1.0

使用Docker安裝SonarQube的詳細教程

 

2.安裝成功

使用Docker安裝SonarQube的詳細教程

 

3.插件安裝

 

3.1安裝Chinese插件

SonarQube提供了強大的插件管理功能,以中文語言包為示例,講解如何安裝插件:

登錄成功后,選擇Administration-Marketplace-Plugins,在搜索框輸入Chinese就可以選擇安裝了。

使用Docker安裝SonarQube的詳細教程

當狀態顯示為Install Pending時,說明插件安裝完成,點擊Restart Server即可生效。

之后,就顯示為中文了。

同時安裝findbug插件

使用Docker安裝SonarQube的詳細教程

 

4.docker安裝gitlab

 

4.1.Gitlab鏡像拉取

# gitlab-ce為穩定版本,后面不填寫版本則默認pull最新latest版本
$ docker pull gitlab/gitlab-ce

 

4.2運行gitlab鏡像

$ docker run -d  -p 443:443 -p 80:80 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce

# -d:后臺運行
# -p:將容器內部端口向外映射
# --name:命名容器名稱
# -v:將容器內數據文件夾或者日志、配置等文件夾掛載到宿主機指定目錄

按上面的方式,gitlab容器運行沒問題,但在gitlab上創建項目的時候,生成項目的URL訪問地址是按容器的hostname來生成的,也就是容器的id。

作為gitlab服務器,我們需要一個固定的URL訪問地址,于是需要配置gitlab.rb(宿主機路徑:/home/gitlab/config/gitlab.rb)。

# gitlab.rb文件內容默認全是注釋
$ vim /home/gitlab/config/gitlab.rb
# 配置http協議所使用的訪問地址,不加端口號默認為80
external_url "http://192.168.199.231"

# 配置ssh協議所使用的訪問地址和端口
gitlab_rails["gitlab_ssh_host"] = "192.168.199.231"
gitlab_rails["gitlab_shell_ssh_port"] = 222 # 此端口是run時22端口映射的222端口
:wq #保存配置文件并退出

使用Docker安裝SonarQube的詳細教程

# 重啟gitlab容器
$ docker restart gitlab

此時項目的倉庫地址就變了。如果ssh端口地址不是默認的22,就會加上ssh:// 協議頭
打開瀏覽器輸入ip地址(因為我的gitlab端口為80,所以瀏覽器url不用輸入端口號,如果端口號不是80,則打開為:ip:端口號)

 

4.3設置root用戶名和密碼

進入目錄 /home/gitlab/config/initial_root_password,查看密碼

xwCsS7lMYx+8x3o6KIBw+Ia6Lg3VqvtHLzxzYfPNtxk=

或者進入gitlab容器后修改密碼。

root@ba96cb6a1f47:/# gitlab-rails console
--------------------------------------------------------------------------------
 Ruby:         ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x86_64-linux]
 GitLab:       14.3.2 (92acfb1b8a9) FOSS
 GitLab Shell: 13.21.1
 PostgreSQL:   12.7
--------------------------------------------------------------------------------

irb(main):005:0> user = User.where(id: 1).first
=> #<User id:1 @root>
irb(main):006:0> user.password=12345678
=> 12345678
irb(main):007:0> user.password_confirmation=12345678
=> 12345678
irb(main):008:0> user.save!
Enqueued ActionMailer::MailDeliveryJob (Job ID: 4fc2d685-2fd6-41d9-893e-2dabc7c3b366) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", {:args=>[#<GlobalID:0x00007fc6c59b5b48 @uri=#<URI::GID gid://gitlab/User/1>>]}
=> true
irb(main):009:0> quit

使用Docker安裝SonarQube的詳細教程

運行后的效果圖

使用Docker安裝SonarQube的詳細教程

 

4.4保存鏡像并推送dockerhub

# 保存已經修的鏡像
docker commit -a "naumy"  -m "初始化gitlab" ba96cb6a1f47 gitlab:v1.0
docker commit -a "naumy"  -m "sonarqube:7.6-community " e70c6cbe2e0b sonarqube-7.6-community:v1.0
docker tag sonarqube-7.6-community:v1.0 naumy/sonarqube-7.6-community:v1.0
docker push naumy/sonarqube-7.6-community:v1.0
# 把舊鏡像的名字,改成倉庫要求的新版名字
docker tag gitlab:v1.0 naumy/gitlab:v1.0
# 登錄到docker hub
docker login       
# 推送
docker push naumy/gitlab:v1.0

 

5.碰到的問題

 

5.1虛擬內存不夠

啟動容器后過了十幾秒。容器自動退出。

Error: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

運行容器后,容器馬上退出。

# 使用命令查看運行日志
docker logs 容器名稱/容器ID

使用Docker安裝SonarQube的詳細教程

在/etc/sysctl.conf文件最后添加一行

vm.max_map_count=262144

使用Docker安裝SonarQube的詳細教程

執行/sbin/sysctl -p立即生效

使用Docker安裝SonarQube的詳細教程

 

6.整合Sonar和gitlab

 

6.1安裝Gitlab-runner

 

6.1.1獲取gitlab-Token

進入gitlab后,選擇runner,進行相應的Token獲取。

使用Docker安裝SonarQube的詳細教程

 

6.1.2安裝gitlab-runner

# 拉取鏡像
docker pull gitlab/gitlab-runner:v13.2.4

# 創建容器映射目錄
mkdir -p /dwz/docker-volume/gitlab-runner/config

# 創建容器并運行
docker run -d --name gitlab-runner 
--restart always 
-v /dwz/docker-volume/gitlab-runner/config:/etc/gitlab-runner 
-v /var/run/docker.sock:/var/run/docker.sock 
gitlab/gitlab-runner:v13.2.4

進入gitlab-runner容器后,配置相應的參數設置:

docker exec -it gitlab-runner gitlab-runner register -n 
--url http://139.198.166.208 
--registration-token 9zEbBYXSyqJqpNb9QSNh 
--executor docker 
--description "Docker Runner" 
--docker-image "sonarsource/sonar-scanner-cli:latest" 
--docker-volumes /var/run/docker.sock:/var/run/docker.sock

再次加載gitlab頁面,出現runner配置項。

使用Docker安裝SonarQube的詳細教程

 

6.2設置sonarqube的用戶名和密碼

設置當前的sonarqube的用戶面和密碼為admin和123456

 

6.3進行項目分析(手動添加項目)

使用Docker安裝SonarQube的詳細教程

是否需要集成自己喜歡的CI,使用gitlab進行持續集成和持續部署。

使用Docker安裝SonarQube的詳細教程

第一步 選擇需要檢測項目代碼類型:

使用Docker安裝SonarQube的詳細教程

新建配置文件sonar-project.properties:

sonar.projectKey=gitlab-sonorqube
sonar.qualitygate.wait=true
sonar.language=py

使用Docker安裝SonarQube的詳細教程

第二步:添加環境變量

使用Docker安裝SonarQube的詳細教程

使用Docker安裝SonarQube的詳細教程

令牌密鑰:b23fe46d142fcfb052b05d5b3fd6fc823df0b682

按照要求添加相應的環境變量:

使用Docker安裝SonarQube的詳細教程

 

6.4進行CI/CD(sonar與gitlab)

 

6.4.1版本為sonarqube-7.6-community

創建一個gitlab項目,實驗使用的項目為python項目。

使用Docker安裝SonarQube的詳細教程

.gitlab-ci.yml文件內容為

# This file is a template, and might need editing before it works on your project.
# To contribute improvements to CI/CD templates, please follow the Development guide at:
# https://docs.gitlab.com/ee/development/cicd/templates.html
# This specific template is located at:
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml

# This is a sample GitLab CI/CD configuration file that should run without any modifications.
# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts,
# it uses echo commands to simulate the pipeline execution.
#
# A pipeline is composed of independent jobs that run scripts, grouped into stages.
# Stages run in sequential order, but jobs within stages run in parallel.
#
# For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages

stages:          # List of stages for jobs, and their order of execution
  - build
  - test
  - deploy

build-job:       # This job runs in the build stage, which runs first.
  stage: build
  script:
    - echo "Compiling the code..."
    - echo "Compile complete."

unit-test-job:   # This job runs in the test stage.
  stage: test    # It only starts when the job in the build stage completes successfully.
  script:
    - echo "Running unit tests... This will take about 60 seconds."
    - sleep 60
    - echo "Code coverage is 90%"

lint-test-job:   # This job also runs in the test stage.
  stage: test    # It can run at the same time as unit-test-job (in parallel).
  script:
    - echo "Linting code... This will take about 10 seconds."
    - sleep 10
    - echo "No lint issues found."

deploy-job:      # This job runs in the deploy stage.
  stage: deploy  # It only runs when *both* jobs in the test stage complete successfully.
  script:
    - echo "Deploying application..."
    - echo "Application successfully deployed."
    
image: 
  name: sonarsource/sonar-scanner-cli:latest
  entrypoint: [""]

sonarqube-check:
  script: 
    - sonar-scanner -X  -Dsonar.projectKey=gitlab-sonorqube -Dsonar.host.url=http://139.198.176.140:9000 -Dsonar.login=cbd26f998beeb61d7a991e0282efc430b020d9f1 -Dsonar.login=admin -Dsonar.password=admin -Dsonar.language=py  -Dsonar.java.binaries=build/  -Dsonar.projectVersion=1.0 -Dsonar.sources=. 
  allow_failure: true
  only:
    - main # or the name of your main branch

提交代碼后,可以獲取到相應的測試信息。

https://sm.ms/image/ykYPlDgZVvuhzsq

 

6.4.2版本為sonarqube-9.1-community

.gitlab-ci.yml文件內容為

sonarqube-check:
  image: 
    name: sonarsource/sonar-scanner-cli:latest
    entrypoint: [""]
  variables:
    SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar"  # Defines the location of the analysis task cache
    GIT_DEPTH: "0"  # Tells git to fetch all the branches of the project, required by the analysis task
  cache:
    key: "${CI_JOB_NAME}"
    paths:
      - .sonar/cache
  script: 
    - sonar-scanner -X  -Dsonar.projectKey=gitlab-sonorqube -Dsonar.host.url=http://139.198.176.140:9000 -Dsonar.login=7f9e3408ac11e0699e2f8afdb21a662cc8ab2698 -Dsonar.login=admin -Dsonar.password=123456 -Dsonar.language=py  -Dsonar.java.binaries=build/  -Dsonar.projectVersion=1.0 -Dsonar.sources=. 
  allow_failure: true
  only:
    - main # or the name of your main branch

提交代碼后gitlab會自動進行CI/CD:

使用Docker安裝SonarQube的詳細教程

點入進去后查看相應的狀態和內容是否符合需求:

使用Docker安裝SonarQube的詳細教程

運行完成后,將看到對應的測試分析結果:

使用Docker安裝SonarQube的詳細教程

使用Docker安裝SonarQube的詳細教程

 

6.5在整合過程中碰到的問題

配置文件寫錯:

使用的python代碼,所以后續將使用py作為語言選擇。

使用Docker安裝SonarQube的詳細教程

使用Docker安裝SonarQube的詳細教程

 

7.總結

當前使用的工具有:

sonarqube:9.1.0-community 、gitlab/gitlab-runner:v13.2.4 、postgres:9.6.23 、gitlab/gitlab-ce、sonarsource/sonar-scanner-cli:latest

使用Docker安裝SonarQube的詳細教程

開發人員提交代碼到gitlab倉庫后,觸發master分支自動合并任務,并進行代碼掃描(可改成其他測試分支),掃面結果返回到sonarqube平臺。

使用Docker安裝SonarQube的詳細教程

到此這篇關于Docker安裝SonarQube的文章就介紹到這了,更多相關Docker安裝SonarQube內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/naumy/article/details/120677544

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲天堂中文字幕 | 操操网站 | 国产婷婷精品av在线 | 欧美福利视频 | 欧美大片免费在线观看 | 久久久久久亚洲 | 欧美三区 | 久草在线免费资源 | 亚洲国产高清在线 | 欧美大片一区 | 91九色在线 | 一区二区三区国产 | 国产香蕉视频在线播放 | 国产日韩欧美一区二区 | 亚洲一区二区三 | 久久99久久99 | 成人精品久久久 | 久久精品免费观看 | 免费观看av | 亚洲成人精品在线观看 | 精品成人免费 | 91精品久久久久久久久久 | 一区二区三区高清不卡 | 二区中文字幕 | 香蕉福利视频 | 国产精品不卡在线播放 | 在线视频 亚洲 | 精品国产一区二区在线 | 成人精品一区二区三区 | 日韩欧美在线观看一区二区 | 精品九九久久 | 精品乱子伦一区二区三区 | 日韩国产在线 | 国产精品jizz在线观看麻豆 | 免费黄色在线 | 亚洲精品一区二区三区 | 亚洲成人精品在线观看 | 日韩高清中文字幕 | 成人免费视频网 | 精品成人免费一区二区在线播放 | www.中文字幕 |