Dockerコード分析ツール(CAT)は、コード分析を実現するためのカスタム構成とプラグインを含むSonarqube Docker画像です。
Sonarqubeは、コードの品質を管理するためのオープンプラットフォームです。
このプロジェクトはフリーソフトウェアです。 Free Software Foundationが発行したGNU General Public Licenseの条件に基づいて、それを再配布したり、変更したりできます。ライセンスのバージョン3、または(オプションで)後のバージョンのいずれか。
Github:Sonarsource/SonarqubeでSonarqubeを入手できます。
Sonarqube分析を許可するグループIDを見つけます(Sonar CNESスキャンプラグインの場合):
getent group <group_name> | cut -d : -f3を使用します既知のグループ名からグループIDに到達するには、 getent group <group_name> | cut -d : -f3 。cat /etc/groupを使用して、すべてのグループIDをリストします。 segrumentこのグループは、すべてのプロジェクトのreadおよびexecution許可を分析し(すべてのファイルを閲覧および分析する)、ワークスペースのルート(C/C ++ツールとソナースキャナーを実行するため)にアクセス許可write必要があります。
dockerhubで使用するバージョンを見つけます:https://hub.docker.com/r/lequal/docker-catまたは、このプロジェクトのマスターブランチに対応するlatest画像を使用してください。
Docker猫のコンテナを実行します:
docker pull lequal/docker-cat
docker run --rm --name=cat -v < your_folder > :/media/sf_Shared:rw -p 9000:9000 -e ALLOWED_GROUPS= " <GID_1>;<GID_2>;<GID_...> " lequal/docker-cat: < version > containerが停止し、そのすべてのデータで破壊される場合、この例--rm使用してください。
guidとして0使用しないでください(例: -e ALLOWED_GROUPS=0 ):コンテナのルートユーザーとの競合を引き起こす可能性があります。
Docker CatのSonarqubeをデフォルトのSonarqube資格情報で管理者としてログインできます。それは確保されていないので(誰もがそれを知っています!)、Docker Catを安全な環境で実行するか、デフォルトの資格情報を変更してください。
adminadmin管理者として、デフォルト値、アクティブ化されたルール、または品質ゲートの条件として、必要な構成を変更できます...
デフォルトでは、Docker CATは、Sonarqubeに統合された埋め込みH2データベースを使用します。長期使用には使用しないでください。そのため、しばらくデータを保持することを期待している場合は、公式ドキュメントで説明されているように、より強力なデータベースのセットアップを検討する必要があります。
コンテナがアクティブになったら、Sonar CNESスキャンプラグインが提供するWebインターフェイスを使用して、Webブラウザーを介して分析を直接実行できます。 #todo
<your_folder>に移動します含まれるすべてのツールが到達できるようにするには、ソースコードを以前に取り付けられたDockerボリュームに配置する必要があり、そのGUIDが
-e ALLOWED_GROUPS=...パラメーターに指示を与えられたグループがディレクトリ全体に権限を持つ必要があります。
contedマウントされたボリュームのファイル上のアクセス許可で(システム構成のため)、コードをコンテナに直接コピーすることができます。 -vまたは--volumeオプションを削除してdocker runコマンドを実行し、このコマンドdocker cp <my_directory> cat:/media/sf_Shared /media/sf_Shared media/sf_sharedにディレクトリをコピーします。
お気に入りのWebブラウザを開き、Docker CAT IP/URLを入力してSonarqubeインターフェイスにアクセスし
:次のとおりです。以前に提案されたデフォルトのコマンドを使用してワークステーションでDocker Catを起動する場合は、アドレスバーにhttp://localhost:9000と入力する必要があります。
Sonarqubeが読み込まれたら、Black Apper Toolbarで
Moreをクリックし、CNES Analysisを選択します。分析フォームに新しいページが表示されます。

次のように注意を払ってフォームに記入してください
- 赤いアスタリスクを備えたフィールド:それらは必須です
Workspaceフィールド:デフォルトではポイントをletします.この分野で。分析の範囲を制限する場合は、/mnt/sf_Sharedディレクトリから相対パスを入力します。Workspaceフィールド:デフォルトではポイントをletします.この分野で。ソースファイルと見なされるファイル/パスを(テストファイルに反対することにより)制限する場合は、Workspaceディレクトリから始まる相対パスのcom睡状態のリストを入力します。Run C/C++ tools:埋め込みツール(CPPCheck、Vera ++、およびラット)を実行する場合は、ボタンをオンにします。 cまたはc ++コードを分析し、cppcheck、vera ++またはratsの結果を既に持っている場合、ワーキングディレクトリに結果がある場合は、sonar-project.propertiesフィールドを使用してこれらの結果の位置を指定し、分析をオフにします。詳細については、Sonar-CXXドキュメントを参照してください。sonar-project.propertiesフィールド:このフィールドを使用して、より高度な構成を追加します。公式文書を参照してください。

ページの下部にある
Analyzeボタンをクリックして、分析を実行します。正常に実行すると、アーカイブのダウンロードがWebブラウザで起動する必要があります。分析のすべての結果が含まれています。 CATインスタンスに分析が既にある場合は、>CNES ReportのMoreを使用して、再解読なしでレポートを再生できます。
Sonarsourceが提供するスキャナーの1つを使用して、古典的な方法で分析を実行できます。 Docker CATが起動されたURLまたはIP提供するだけで、ポート9000 Dockerコマンドで指定するマッチングポートを提供する必要があります。詳細については、公式文書に記載されているSonarsourceのスキャナーを使用してください。
これらのメソッドを使用すると、 cppcheckのような自動洗浄ツールが正しく設定されていない場合、機能しない場合があります。
Docker CATがテストされているか(✔️としてマークされている)または単にサポートされていない(マークされている)(マークされている)このテーブルリストオペレーティングシステム。
| Docker Catバージョン | Linux(Centos&Debian) | Mac OS | Windows |
|---|---|---|---|
3.2.2 | ✔✔️ | ❓ | ❓ |
3.0.0 | ✔✔️ | ❓ | ❓ |
2.1.0 | ✔✔️ | ❓ | ❓ |
2.0.2 | ✔✔️ | ❓ | ❓ |
2.0.1 | ✔✔️ | ❓ | ❓ |
< 2.0.0 | ✔✔️ | ❓ | ✔✔️ |
新しく更新されたソフトウェアには絵文字が付いていますか?
| ツール | バージョン |
|---|---|
| ? Sonarqube-catlab | 3.2.2 |
| ?ソナースキャナー | 5.0.1.3006 |
| ? cppcheck | 2.13.0 |
| ? i-code cnes | 4.1.2 |
| ? Python3 | 3.10.4 |
| ?ピップ | 22.0.2 |
| ? setuptools-scm | 8.0.4 |
| ? Pytest-Runner | 6.0.1 |
| ?ラップ | 1.16.0 |
| 六 | 1.16.0 |
| ? Lazy-Object-Proxy | 1.10.0 |
| マッケイブ | 0.7.0 |
| ? ISORT | 5.13.2 |
| ?タイプアスト | 1.5.5 |
| アストロイド | 2.15.2 |
| ピリント | 2.17.2 |
| CNES-Pylint-Extension | 6.0.0 |
| 作る | 4.3 |
| GCC | 4:11.2.0 |
| シェルチェック | 0.8.0 |
プラグインで問題が発生した場合は、問題を開いてください。この問題の中で、この問題を再現してログを貼り付ける方法を説明してください。
PRを実行したい場合は、このプルリクエストの理由を内側に入れてください。このプル要求の修正問題の修正の場合は、問題の番号を挿入するか、PRの内部でこの問題を再現する方法を説明してください。
すべての詳細は、貢献することで利用できます。
バグと機能リクエスト:https://github.com/cnescatlab/docker-cat/issues
GNU General Public License、バージョン3.0に基づいてライセンスされています