Инструмент анализа кода Docker (CAT) - это изображение Sonarqube Docker, содержащее пользовательскую конфигурацию и плагины для реализации анализа кода.
Sonarqube - это открытая платформа для управления качеством кода.
Этот проект - бесплатное программное обеспечение; Вы можете перераспределить его и/или изменить его в соответствии с условиями общей публичной лицензии GNU, опубликованных Фондом Free Software; Любая версия 3 лицензии, либо (по варианту) любую более позднюю версию.
Вы можете получить Sonarqube на GitHub: Sonarsource/Sonarqube.
Найдите групповые идентификаторы, чтобы разрешить анализ Sonarqube (для плагина Sonar CNES Scan):
getent group <group_name> | cut -d : -f3 чтобы достичь идентификатора группы от известного имени группы;cat /etc/group для перечисления всех идентификаторов группы. ❗ Эта группа должна иметь разрешения read и execution во всем проекте для анализа (для просмотра и анализа всех файлов) и write разрешения на корень рабочего пространства (для выполнения инструментов C/C ++ и сканера Sonar).
Найдите версию, которую вы хотите использовать на Dockerhub: https://hub.docker.com/r/lequal/docker-cat или просто используйте latest изображение, которое соответствует главной ветви этого проекта.
Запустите контейнер Docker Cat:
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 > ❗ Этот пример Использование --rm опция, поэтому, когда контейнер остановится и будет уничтожен всеми его данными.
❗ Избегайте использования 0 в качестве GUID (например: -e ALLOWED_GROUPS=0 ): это может вызвать конфликты с пользователем корня контейнера.
Вы можете войти в Sonarque's Docker Cat в качестве администратора с учетными данными по умолчанию Sonarqube. Поскольку это не защищено (все это знают!), Обязательно запустите Docker Cat в защищенной среде или измените учетные данные по умолчанию.
adminadminКак администратор, вы можете изменить любую конфигурацию, которую вы хотите в качестве значений по умолчанию, активированные правила или условия качества затвора ...
По умолчанию Docker Cat использует встроенную базу данных H2, которая интегрирована в Sonarqube: ее не следует использовать для долгосрочного использования. Вот почему, если вы рассчитываете сохранить свои данные на некоторое время, вам следует рассмотреть возможность настройки более сильной базы данных, как описано в официальной документации.
После того, как контейнер активен, вы можете использовать веб -интерфейс, предоставленный плагином Sonar CNES Scan для запуска анализа непосредственно через ваш веб -браузер. #Todo
<your_folder>Чтобы быть достигнутым всеми включенными инструментами, ваш исходный код должен быть размещен в ранее установленном томе Docker и группе, чей GUID был дан для
-e ALLOWED_GROUPS=...должен иметь разрешения на весь каталог.
❗ Если вы столкнетесь с некоторыми трудностями с разрешениями в файлах в монтированных объемах (из -за конфигурации вашей системы), вы можете напрямую скопировать ваш код в контейнер. Выполните команду docker run , удалив любые параметры -v или --volume и скопируйте свой каталог в каталоге /media/sf_Shared из контейнера, используя эту команду docker cp <my_directory> cat:/media/sf_Shared .
Просто откройте свой любимый веб -браузер и получите доступ к интерфейсу Sonarqube, набрав Docker Cat IP/URL -адрес
:а затем порт, отображенный с портом 9000 контейнера. Если вы начнете Docker Cat на своей рабочей станции с ранее предложенной командой по умолчанию, у вас должен быть введитеhttp://localhost:9000в вашей адресной строке.
Когда Sonarqube загрузится, нажмите
Moreна черной верхней панели инструментов и выберитеCNES Analysis. Новая страница должна появиться в форме анализа.

Заполните форму, обратив внимание на:
- Поля с красной звездочкой: они обязательны
- Поля
Workspace: по умолчанию пусть точка.в этой области. Если вы хотите ограничить область анализа, введите относительный путь из каталога/mnt/sf_Shared.- Поля
Workspace: по умолчанию пусть точка.в этой области. Если вы хотите ограничить файлы/путь, рассматриваемые как исходные файлы (оппозицией к тестируемому файлам), введите список относительного пути, разделяемый COMA, начиная с каталогаWorkspace.Run C/C++ tools: включите кнопку THS, если вы хотите запустить встроенные инструменты (CPPCHECK, VERA ++ и крысы). Если вы анализируете код C или C ++, и у вас уже есть результаты CPPCHECK, VERA ++ или крысы в вашем рабочем каталоге, вы можете использовать полеsonar-project.propertiesдля обозначения местоположения этих результатов и отключения анализа. Обратитесь к документации Sonar-CXX для получения дополнительной информации.sonar-project.propertiesПоле: используйте это поле, чтобы добавить более расширенную конфигурацию. Обратитесь к официальной документации.

Просто нажмите кнопку
Analyzeвнизу страницы, чтобы запустить анализ. При успешном запуске загрузка архива должна начинаться в вашем веб -браузере. Он содержит все результаты вашего анализа. Если у вас уже есть анализ в экземпляре CAT, вы можете восстановить отчет без повторного анализа, используя форму вMore>CNES Report.
Вы можете запустить анализ с классическим методом, используя один из сканеров, предоставленных Sonarsource. Вы просто должны дать URL или IP , где был запущен Docker Cat, и соответствующий порт, который вы даете в команде Docker для порта 9000 . Для получения дополнительной информации используйте сканеры Sonarsource, как описано в официальной документации.
❗ С этими методами инструмент с автоматическим заводом, такой как cppcheck может не работать, если они неправильно установлены.
Эта операционная система списка таблицы, на которой была протестирована Docker Cat (помеченная как ✔) или нет (помеченная как as❓) или просто не поддерживается (помеченная как).
| Docker Cat версия | Linux (Centos & Debian) | Mac OS | Окна |
|---|---|---|---|
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 |
| ? Изорт | 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 |
| ShellCheck | 0,8,0 |
Если вы столкнулись с проблемой с плагином, откройте проблему. В этом выпуске объясните нам, как воспроизводить эту проблему и вставить журнал.
Если вы хотите сделать PR, пожалуйста, поместите в него причину этого запроса. Если этот запрос на то, чтобы исправить проблему, вставьте номер проблемы или объясните внутри PR, как воспроизвести эту проблему.
Все детали доступны в содействии.
Ошибки и запросы функций: https://github.com/cnescatlab/docker-cat/issues
Лицензировано по общедоступной лицензии GNU, версия 3.0