<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Docker安裝SonarQube的教學如下所示:
# 拉取sonarqube映象 $ docker pull sonarqube:9.1.0-community (推薦使用) / $ docker pull sonarqube:7.6-community # 拉取postgres映象 $ docker pull postgres:9.6.23
# 執行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
。
嵌入式資料庫應僅用於評估目的、嵌入式資料庫無法擴充套件,不支援升級到SonarQube的較新版本,也不支援將資料從中遷移到其他資料庫引擎。
# 儲存已經修的映象 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
SonarQube
提供了強大的外掛管理功能,以中文語言套件為範例,講解如何安裝外掛:
登入成功後,選擇Administration-Marketplace-Plugins
,在搜尋方塊輸入Chinese
就可以選擇安裝了。
當狀態顯示為Install Pending
時,說明外掛安裝完成,點選Restart Server
即可生效。
之後,就顯示為中文了。
同時安裝findbug外掛
# gitlab-ce為穩定版本,後面不填寫版本則預設pull最新latest版本 $ docker pull gitlab/gitlab-ce
$ 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 #儲存組態檔並退出
# 重啟gitlab容器 $ docker restart gitlab
此時專案的倉庫地址就變了。如果ssh埠地址不是預設的22,就會加上ssh:// 協定頭
開啟瀏覽器輸入ip地址(因為我的gitlab埠為80,所以瀏覽器url不用輸入埠號,如果埠號不是80,則開啟為:ip:埠號)
進入目錄 /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 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
啟動容器後過了十幾秒。容器自動退出。
Error: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
執行容器後,容器馬上退出。 # 使用命令檢視執行紀錄檔 docker logs 容器名稱/容器ID
在/etc/sysctl.conf檔案最後新增一行
vm.max_map_count=262144
執行/sbin/sysctl -p
立即生效
進入gitlab後,選擇runner,進行相應的Token獲取。
# 拉取映象 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設定項。
設定當前的sonarqube的使用者面和密碼為admin和123456
是否需要整合自己喜歡的CI,使用gitlab進行持續整合和持續部署。
第一步 選擇需要檢測專案程式碼型別:
新建組態檔sonar-project.properties:
sonar.projectKey=gitlab-sonorqube sonar.qualitygate.wait=true sonar.language=py
第二步:新增環境變數
令牌金鑰:b23fe46d142fcfb052b05d5b3fd6fc823df0b682
按照要求新增相應的環境變數:
建立一個gitlab專案,實驗使用的專案為python專案。
.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
.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:
點入進去後檢視相應的狀態和內容是否符合需求:
執行完成後,將看到對應的測試分析結果:
組態檔寫錯:
使用的python程式碼,所以後續將使用py作為語言選擇。
當前使用的工具有:
sonarqube:9.1.0-community 、gitlab/gitlab-runner:v13.2.4 、postgres:9.6.23 、gitlab/gitlab-ce、sonarsource/sonar-scanner-cli:latest
開發人員提交程式碼到gitlab倉庫後,觸發master分支自動合併任務,並進行程式碼掃描(可改成其他測試分支),掃面結果返回到sonarqube平臺。
到此這篇關於Docker安裝SonarQube的文章就介紹到這了,更多相關Docker安裝SonarQube內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45