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=ルート\ -e POSTGRES_PASSWORD=123456 \ -d ポストグレ:9.6.23 # postgresコンテナに入り、ユーザー名とパスワードを作成します $ docker exec -it postgresqldb bash # データベースにログイン psql -U root -W # ユーザー名とパスワードを作成します。create user sonar with password 'sonar'; データベース sonar 所有者 sonar を作成します。 データベース sonar のすべての権限を 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=ソナー \ -e sonar.jdbc.url=jdbc:postgresql://139.198.176.140:5432/sonar \ sonarqube:9.1.0-コミュニティ 次に、http://localhost:9000/ にアクセスします。デフォルトの管理者ユーザー名とパスワードは 組み込みデータベースは評価目的でのみ使用してください。組み込みデータベースは拡張できず、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ログイン # プッシュ docker push naumy/hitrend-sonarqube:v1.0 2. インストール成功3. プラグインのインストール3.1 中国語プラグインをインストールする
ログインに成功したら、 ステータスに それ以降は中国語で表示されます。
4. Dockerにgitlabをインストールする4.1. Gitlabイメージをプルする# gitlab-ce は安定バージョンです。バージョンを入力しない場合は、デフォルトで最新バージョンがプルされます。$ 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 アクセス アドレスはコンテナのホスト名、つまりコンテナの ID に従って生成されます。 Gitlab サーバーとしては固定の URL アクセス アドレスが必要なので、gitlab.rb (ホスト パス: /home/gitlab/config/gitlab.rb ) を設定する必要があります。 # gitlab.rb ファイルの内容はデフォルトですべてコメントです$ vim /home/gitlab/config/gitlab.rb # http プロトコルで使用されるアクセス アドレスを設定します。ポート番号を追加しない場合、デフォルトは 80 です。 外部URL 'http://192.168.199.231' # SSHプロトコルで使用されるアクセスアドレスとポートを設定します gitlab_rails['gitlab_ssh_host'] = '192.168.199.231' gitlab_rails['gitlab_shell_ssh_port'] = 222 # このポートは実行中にポート22にマップされる222ポートです: wq # 設定ファイルを保存して終了します # GitLabコンテナを再起動します $ docker restart gitlab この時点でプロジェクトの倉庫住所は変更されています。 SSH ポート アドレスがデフォルトの 22 でない場合は、ssh:// プロトコル ヘッダーが追加されます。ブラウザを開いて IP アドレスを入力します (私の GitLab ポートは 80 なので、ブラウザの URL にポート番号を入力する必要はありません。ポート番号が 80 でない場合は、ip:ポート番号として開きます) 4.3 ルートユーザー名とパスワードを設定する/home/gitlab/config/initial_root_passwordディレクトリに入り、パスワードを表示します。
または、gitlab コンテナに入った後にパスワードを変更します。 root@ba96cb6a1f47:/# gitlab-rails コンソール -------------------------------------------------------------------------------- Ruby: ruby 2.7.4p191 (2021-07-07 リビジョン a21a3b7d23) [x86_64-linux] GitLab: 14.3.2 (92acfb1b8a9) フォス GitLab シェル: 13.21.1 PostgreSQL: 12.7 -------------------------------------------------------------------------------- irb(main):005:0> user = User.where(id: 1).first => #<ユーザーID:1 @root> irb(メイン):006:0> user.password=12345678 => 12345678 irb(メイン):007:0> user.password_confirmation=12345678 => 12345678 irb(main):008:0> user.save! ActionMailer::MailDeliveryJob (ジョブ ID: 4fc2d685-2fd6-41d9-893e-2dabc7c3b366) を Sidekiq(mailers) に、引数 "DeviseMailer"、"password_change"、"deliver_now"、{:args=>[#<GlobalID:0x00007fc6c59b5b48 @uri=#<URI::GID gid://gitlab/User/1>>]} を付けてキューに追加しました => 本当 irb(main):009:0> 終了 実行後の効果図 4.4 イメージを保存してdockerhubにプッシュする# 変更したイメージを保存します docker commit -a "naumy" -m "initialize gitlab" ba96cb6a1f47 gitlab:v1.0 docker commit -a "naumy" -m "sonarqube:7.6-community " e70c6cbe2e0b sonarqube-7.6-community:v1.0 docker タグ 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ログイン # プッシュ docker push naumy/gitlab:v1.0 5. 遭遇した問題5.1 仮想メモリ不足コンテナを起動してから10秒ほど経過しました。コンテナは自動的に終了します。 エラー: 最大仮想メモリ領域 vm.max_map_count [65530] が低すぎます。少なくとも [262144] に増やしてください。 コンテナを実行した後、コンテナはすぐに終了します。 # 実行中のログを表示するには、コマンドを使用します。docker logs コンテナ名/コンテナID /etc/sysctl.confファイルの末尾に1行追加します。 vm.max_map_count=262144 すぐに有効にするには 6. SonarとGitLabを統合する6.1 Gitlab-runnerをインストールする6.1.1 gitlab-Tokenを取得するgitlab に入ったら、ランナーを選択し、対応するトークンを取得します。 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 を実行します \ --常に再起動\ gitlab-runner のディレクトリを /etc/gitlab-runner にコピーします。 -v /var/run/docker.sock:/var/run/docker.sock \ gitlab/gitlab-ランナー:v13.2.4 gitlab-runner コンテナに入ったら、対応するパラメータ設定を構成します。 docker exec -it gitlab-runner gitlab-runner register -n \ --url http://139.198.166.208 \ --登録トークン 9zEbBYXSyqJqpNb9QSNh \ --executor docker \ --description "Docker ランナー" \ --docker-image "sonarsource/sonar-scanner-cli:latest" \ --docker-volumes /var/run/docker.sock:/var/run/docker.sock gitlab ページを再度読み込むと、ランナー構成項目が表示されます。 6.2 sonarqubeのユーザー名とパスワードを設定する
6.3 プロジェクト分析を実行する(手動でプロジェクトを追加する)お気に入りの CI を統合し、継続的インテグレーションと継続的デプロイメントに GitLab を使用する必要がありますか? 最初のステップは、検出する必要があるプロジェクト コード タイプを選択することです。 新しい設定ファイル sonar-project.properties を作成します。 sonar.projectKey=gitlab-sonorqube ソナー品質ゲート待機=true ソナー言語 = py ステップ2: 環境変数を追加する トークンキー: 必要に応じて対応する環境変数を追加します。 6.4 CI/CD を実行する (sonar と gitlab)バージョン6.4.1はsonarqube-7.6-communityですGitLab プロジェクトを作成します。実験で使用するプロジェクトは Python プロジェクトです。 .gitlab-ci.ymlファイルの内容は # このファイルはテンプレートであり、プロジェクトで動作させる前に編集する必要がある場合があります。 # CI/CD テンプレートの改善に貢献するには、次の開発ガイドに従ってください。 # https://docs.gitlab.com/ee/development/cicd/templates.html # この特定のテンプレートは次の場所にあります: # https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml # これは、変更せずに実行できるサンプルの GitLab CI/CD 構成ファイルです。 # 基本的な3段階のCI/CDパイプラインを示します。実際のテストやスクリプトの代わりに、 # echo コマンドを使用してパイプラインの実行をシミュレートします。 # # パイプラインは、スクリプトを実行する独立したジョブで構成され、ステージにグループ化されます。 # ステージは順番に実行されますが、ステージ内のジョブは並行して実行されます。 # # 詳細については、https://docs.gitlab.com/ee/ci/yaml/index.html#stages を参照してください。 stages: # ジョブのステージのリストと実行順序 - 建てる - テスト - 展開する build-job: # このジョブは、最初に実行されるビルド ステージで実行されます。 ステージ: ビルド スクリプト: - echo "コードをコンパイルしています..." - echo "コンパイルが完了しました。" unit-test-job: # このジョブはテスト段階で実行されます。 stage: test # ビルド ステージのジョブが正常に完了した場合にのみ開始されます。 スクリプト: - echo "ユニットテストを実行しています...これには約 60 秒かかります。" - 睡眠60 - echo "コードカバレッジは90%です" lint-test-job: # このジョブもテスト段階で実行されます。 stage: test # unit-test-job と同時に(並行して)実行できます。 スクリプト: - echo "コードをリンティングしています...これには約 10 秒かかります。" - 睡眠10 - echo "lint の問題は見つかりませんでした。" deploy-job: # このジョブはデプロイ段階で実行されます。 stage: deploy # テスト ステージの両方のジョブが正常に完了した場合にのみ実行されます。 スクリプト: - echo "アプリケーションをデプロイしています..." - echo "アプリケーションが正常にデプロイされました。" 画像: 名前: sonarsource/sonar-scanner-cli:latest エントリポイント: [""] ソナーキューブチェック: スクリプト: - 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=. 失敗を許可する: true のみ: - main # またはメインブランチの名前 コードを送信すると、対応するテスト情報を取得できます。 https://sm.ms/image/ykYPlDgZVvuhzsq バージョン6.4.2はsonarqube-9.1-communityです.gitlab-ci.ymlファイルの内容は ソナーキューブチェック: 画像: 名前: sonarsource/sonar-scanner-cli:latest エントリポイント: [""] 変数: SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar" # 分析タスクキャッシュの場所を定義します GIT_DEPTH: "0" # 分析タスクに必要なプロジェクトのすべてのブランチを取得するようにgitに指示します キャッシュ: キー: "${CI_JOB_NAME}" パス: - .sonar/キャッシュ スクリプト: - 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=. 失敗を許可する: true のみ: - main # またはメインブランチの名前 コードを送信すると、gitlab は自動的に CI/CD を実行します。 クリックして、対応するステータスとコンテンツが要件を満たしているかどうかを確認します。 実行が完了すると、対応するテスト分析結果が表示されます。 6.5 統合プロセス中に発生した問題設定ファイルが正しくありません: Python コードが使用されているため、将来的には言語の選択肢として py が使用されます。 7. まとめ現在使用されているツールは次のとおりです。
開発者がコードを GitLab リポジトリに送信すると、マスター ブランチの自動マージ タスクがトリガーされ、コードがスキャンされ (他のテスト ブランチに変更可能)、スキャン結果が sonarqube プラットフォームに返されます。 これで、SonarQube を Docker でインストールする方法についての記事は終了です。SonarQube を Docker でインストールする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Adobe Brackets の簡単な使い方のグラフィックチュートリアル
>>: Mysql の主キー インデックスと非主キー インデックスの違いについて簡単に説明します。
システム環境: Ubuntu 16.04LTSこの記事では、6 つの Docker コンテナを使用し...
1.ページを XML タイプとして宣言しないでください。ページでは UTF-8 または UTF-16...
MySQL エラー: パラメータ インデックスが範囲外です (1 > パラメータ数、つまり 0...
1. 対応するNode.jsパッケージを見つけます。https://nodejs.org/downl...
ヒント1: 集中力を保つ最高のモバイル アプリは、1 つのことを非常にうまく行うことに重点を置いてい...
この記事の例は MySQL 5.0 以降で実行されます。ユーザー権限を付与するための MySQL コ...
必要:近い将来、大容量ファイルのアップロード機能を実装します。フロントエンドフレームワークのアップロ...
以下はcentos7での設定方法ですsystemc ソース パッケージをダウンロード: System...
次のグラフは、100 個の異なる要素で iframe を作成するのにどれくらいの時間がかかるかを示し...
js 配列はどこでも使用されているため、おそらく誰もがよく知っているでしょうが、配列クラス (疑似配...
導入いつものように、シーンから始めましょう〜インタビュアー:「トランザクションの4つの特性をご存知で...
1. システムインストールパッケージ yum -y インストール make gcc-c++ cmak...
Ubuntu 18.04の場合1. sudo apt install python 。コマンドライン...
apk add ansible を使用して、alpine イメージに ansible サービスを追加...
圧縮版の記事ではデータの初期化がされていないなどいくつか問題があったため、Windows にインスト...