Docker Code Analysis Tool (CAT) es una imagen Sonarqube Docker que contiene configuración y complementos personalizados para realizar el análisis de código.
Sonarqube es una plataforma abierta para administrar la calidad del código.
Este proyecto es software gratuito; Puede redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General de GNU publicada por Free Software Foundation; ya sea la versión 3 de la licencia, o (a su opción) cualquier versión posterior.
Puedes conseguir sonarqube en Github: Sonarsource/Sonarqube.
Encuentre ID de grupo para permitir que el análisis SONARQUBE (para el complemento de escaneo SONAR CNES):
getent group <group_name> | cut -d : -f3 para llegar a una ID de grupo desde un nombre de grupo conocido;cat /etc/group para enumerar todas las ID de grupo. ❗ Este grupo debe tener permisos read y execution en todo el proyecto para analizar (para navegar y analizar todos los archivos) y write permisos en la raíz del espacio de trabajo (para ejecutar herramientas C/C ++ y sonar-scanner).
Encuentre la versión que desea usar en DockerHub: https://hub.docker.com/r/lequal/docker-cat o simplemente use la latest imagen que corresponde a la rama maestra de este proyecto.
Ejecute el contenedor 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 > ❗ Este ejemplo de uso -opción --rm para que cuando el contenedor se detenga y será destruido con todos sus datos.
❗ Evite usar 0 como GUID (por ejemplo: -e ALLOWED_GROUPS=0 ): puede causar conflictos con el usuario raíz del contenedor.
Puede iniciar sesión en Docker Cat's Sonarqube como administrador con las credenciales de sonarqube predeterminadas. Como no está asegurado (¡todos lo saben!), Asegúrese de ejecutar Docker Cat en un entorno seguro o cambiar las credenciales predeterminadas.
adminadminComo administrador, puede cambiar cualquier configuración que desee como valores predeterminados, reglas activadas o condiciones de puerta de calidad ...
Por defecto, Docker CAT usa la base de datos H2 integrada que está integrada a Sonarqube: no debe usarse para uso a largo plazo. Es por eso que si espera mantener sus datos por un tiempo, debe considerar configurar una base de datos más fuerte como se describe en la documentación oficial.
Una vez que el contenedor está activo, puede usar la interfaz web proporcionada por el complemento SONAR CNES Scan para ejecutar un análisis directamente a través de su navegador web. #HACER
<your_folder>Para ser accesible por todas las herramientas incluidas, su código fuente debe colocarse en el volumen de Docker montado previamente y el grupo cuyo GUID se ha dado a
-e ALLOWED_GROUPS=...el parámetro debe tener permisos en todo el directorio.
❗ Si encuentra algunas dificultades con los permisos en los archivos en volúmenes montados (debido a la configuración de su sistema), puede copiar directamente su código en el contenedor. Ejecute el comando docker run eliminando cualquier opción -v o --volume y copie su directorio en el directorio /media/sf_Shared del contenedor utilizando este comando docker cp <my_directory> cat:/media/sf_Shared .
Simplemente abra su navegador web favorito y acceda a la interfaz Sonarqube escribiendo la IP/URL de Docker CAT seguido de
:y el puerto se asignó al puerto 9000 del contenedor. Si inicia Docker Cat en su estación de trabajo con el comando predeterminado propuesto previamente propuesto, debe tener un tipohttp://localhost:9000en su barra de direcciones.
Cuando Sonarqube se haya cargado, haga clic en
Moreen la barra de herramientas superior negra y seleccioneCNES Analysis. Debe aparecer una nueva página con el formulario de análisis.

Complete el formulario prestando atención a:
- campos con un asterisco rojo: son obligatorios
- Campos
Workspace: por defecto, deje un punto.en este campo. Si desea limitar el alcance del análisis, escriba la ruta relativa desde el directorio/mnt/sf_Shared.- Campos
Workspace: por defecto, deje un punto.en este campo. Si desea limitar los archivos/ruta considerados como archivos de origen (por oposición a los archivos de prueba), escriba una lista separada por coma de ruta relativa a partir del directorioWorkspace.Run C/C++ tools: active el botón THS si desea ejecutar herramientas incrustadas (CPPCheck, Vera ++ y ratas). Si analiza el código C o C ++ y ya tiene CPPCheck, Vera ++ o Rats da como resultado su directorio de trabajo, puede usar el camposonar-project.propertiespara designar la ubicación de estos resultados y desactivar el análisis. Consulte la documentación de Sonar-CXX para obtener más información.sonar-project.propertiesField: Use este campo para agregar una configuración más avanzada. Consulte la documentación oficial.

Simplemente haga clic en el botón
Analyzeen la parte inferior de la página para ejecutar el análisis. Cuando se ejecuta con éxito, una descarga de archivo debe comenzar en su navegador web. Contiene todos los resultados de su análisis. Si ya tiene análisis en su instancia de CAT, puede regenerar el informe sin el análisis de reingreso utilizando el formulario en el informeMore>CNES Report.
Puede ejecutar un análisis con el método clásico utilizando uno de los escáneres proporcionados por Sonarsource. Simplemente tiene que dar la URL o IP donde se ha lanzado Docker Cat y el puerto coincidente que da en su comando Docker para el puerto 9000 . Para obtener más información, use los escáneres de Sonarsource como se describe en la documentación oficial.
❗ Con estos métodos, la herramienta automática como cppcheck puede no funcionar, si no están configurados correctamente.
Este sistema operativo de la lista de tabla en el que Docker CAT ha sido probado (marcado como ✔️) o no (marcado AS❓) o simplemente no es compatible (marcado como).
| Versión de Docker Cat | Linux (Centos y Debian) | Mac OS | Windows |
|---|---|---|---|
3.2.2 | ✔️ | ❓ | ❓ |
3.0.0 | ✔️ | ❓ | ❓ |
2.1.0 | ✔️ | ❓ | ❓ |
2.0.2 | ✔️ | ❓ | ❓ |
2.0.1 | ✔️ | ❓ | ❓ |
< 2.0.0 | ✔️ | ❓ | ✔️ |
¿El software nuevo y actualizado está marcado con emoji?
| Herramientas | Versiones |
|---|---|
| ? Sonarqube-catlab | 3.2.2 |
| ? Escáner de sonar | 5.0.1.3006 |
| ? CPPCHECK | 2.13.0 |
| ? I-Code CNES | 4.1.2 |
| ? python3 | 3.10.4 |
| ? pepita | 22.0.2 |
| ? setuptools-scm | 8.0.4 |
| ? corredor de pytest | 6.0.1 |
| ? envuelto | 1.16.0 |
| seis | 1.16.0 |
| ? Profección de objeto perezoso | 1.10.0 |
| McCabe | 0.7.0 |
| ? isort | 5.13.2 |
| ? mecanografiado | 1.5.5 |
| atroides | 2.15.2 |
| pylint | 2.17.2 |
| CNES-Pylint-Extension | 6.0.0 |
| hacer | 4.3 |
| GCC | 4: 11.2.0 |
| Chellera | 0.8.0 |
Si experimentó un problema con el complemento, abra un problema. Dentro de este problema, explíquenos cómo reproducir este problema y pegar el registro.
Si desea hacer un PR, coloque dentro de él el motivo de esta solicitud de extracción. Si esta solicitud de extracción soluciona un problema, inserte el número del problema o explique dentro del PR cómo reproducir este problema.
Todos los detalles están disponibles en contribución.
Bugs y solicitudes de funciones: https://github.com/cnescatlab/docker-cat/issues
Con licencia bajo la Licencia Pública General de GNU, versión 3.0