Guía de instalación y configuración de SonarQube 7.1 con plugin de Open API en un contenedor Docker

Diego Fernando Maciel
AvengaLATAM
Published in
5 min readSep 17, 2022

--

Consideraciones de la instalación:

Se elegió la versión de SonarQube 7.1 compatible con Java 8 y plugin de Open API para Sonar. El sistema operativo usado en la publicación es Microsoft Windows.

Prerrequisitos:

Pasos de la instalación:

  • Verificar si Docker Desktop está instalado e iniciado en el sistema.
  • Definir una carpeta para el proyecto donde se usará Docker Compose
  • En la ubicación elegida crear el archivo docker-compose.yml
  • Editar el archivo docker-compose.yml y agregar el siguiente contenido:
Código fuente disponible: docker-compose.yml

Código fuente disponible: docker-compose.yml

Esta configuración creará un contenedor de Docker basado en la imagen oficial de Sonar 7.1 disponible en DockerHub y otro contenedor Docker con una base de datos Postgres.

  • Abrir una consola en la carpeta donde se ubica el archivo docker-compose.yml
  • Iniciar Docker Compose mediante el comando:
    docker-compose up -d
Comprobar la creación de contenedores en la salida de la consola

Comprobar la creación de contenedores en la salida de la consola

Referencia técnica con argumentos alternativos: docker compose up
Referencia de todos los comandos:
Overview of docker compose CLI

Vista de la consola de SonarQube 7.1 sin autenticación
  • Autenticarse como administrador con las credenciales predeterminadas:

Usuario: admin
Contraseña: admin

En la siguiente imagen se observa el proyecto de SonarQube 7.1 con el resultado del reporte de calidad

Vista de la consola web de SonarQube 7.1 autenticado con el perfil de administrador

Vista de la consola web de SonarQube 7.1 autenticado con el perfil de administrador

  • Para finalizar la instancia local del servidor de SonarQube 7.1 debe dirigirse a la consola shell y ejecutar el comando docker-compose stop o docker-commpose down

Referencia técnica de los comandos citados:

docker compose stop
docker compose down

Archivos disponibles para descargar:

docker-compose.yml

Guía de instalación del Plugin OpenAPI en SonarQube 7.1

El plugin de Sonar OpenAPI incorpora nueve reglas genéricas que permiten analizar el código fuente de servicios construidos bajo los estándares propuestos en la especificación de OpenAPI.

Nota: El plugin Sonar OpenAPI es un proyecto publicado en Github bajo licencia LGPL-3.0 y es compatible con las versiones de OpenAPI 2.0, 3.0.0 y 3.0.1.

Prerrequisitos:

  • Servidor de SonarQube 7.1 instalado en Docker container
  • Apache Maven instalado y configurado en el sistema

Repositorio oficial de Apache Maven: Maven Download

Pasos de la instalación:

  • Actualizar su archivo settings.xml de Maven con la configuración de referencia disponible en el siguiente archivo adjuntado: settings-sonar.xml

Asegurar que esté presente la configuración de las siguientes etiquetas:
<pluginGroup>...</pluginGroup>
<profile>...</profile>

Vista de la configuración adicional de Maven
  • Establecer una carpeta de trabajo para el proyecto y descargar en ella el código fuente desde el repositorio oficial : sonar-openapi.git
  • Editar el pom.xml principal del proyecto y especificar el uso de la versión 7.1 de SonarQube
El archivo pom.xml está ubicado en la carpeta principal del proyecto
  • Localizar y modificar el valor de las siguientes etiquetas
    <sonarQubeMinVersion>7.1</sonarQubeMinVersion
    <sonar.version>7.1</sonar.version>
  • Generar el jar del plugin mediante la compilación con Maven . Para ello en la carpeta de trabajo abrir una consola shell y ejecutar el comando: mvn clean install
Resultado de la ejecución del comando Maven

La compilación genera un archivo Jar en la carpeta: sonar-openapi-plugin\target . Por defecto el nombre del archivo es: sonar-openapi-plugin-1.2.3-SNAPSHOT.jar

Vista de la carpeta sonar-openapi-plugin\target
  • Copiar el plugin a la carpeta extensions/plugins dentro de la carpeta raíz del servidor de SonarQube
  • Reiniciar el servidor de SonarQube para finalizar la instalación

Instalación del Plugin de OpenAPI en un contenedor Docker

Para realizar la instalación manual del plugin de OpenAPI en el contexto de un contenedor Docker, es necesario utilizar el comando docker cp para realizar la operación de copiado del archivo jar.

El comando docker cp permite la copia de archivos entre el sistema de archivos del sistema operativo huésped y el contenedor de Docker

Para realizar la copia mediante el comando docker cp, es necesario conocer el nombre del contenedor docker que contiene al servidor de SonarQube.

  • Opción 1: En una consola shell ejecutar el comando docker ps
  • Opción 2: Ubicar el nombre del contenedor en Docker Desktop
Vista de los contenedores registrados en Docker Desktop
  • El destino de la copia del plugin dentro del contenedor de Docker correspondiente al servidor de SonarQube debe ser el siguiente: /opt/sonarqube/extensions/plugins

Ejemplo de copia en un entorno Windows:

docker cp “C:\dev\sonar-openapi\sonar-openapi-plugin\target\sonar-openapi-plugin-1.2.3-SNAPSHOT.jar” sonarqube_sonarqube_1:”/opt/sonarqube/extensions/plugins”

  • Reiniciar el contenedor Docker
  • Ingresar a la consola web en: http://localhost:9000
  • Usar credenciales predeterminadas: admin / admin
  • Validar que las reglas para OpenAPI están disponibles en el menú Rules
Vista de la consola web de SonarQube

Archivos disponibles para descargar:

Integración a proyectos con SonarScanner para Maven

Se recomienda usar SonarScanner como el escáner predeterminado para los proyectos que se gestionen con Maven, ya que permite ejecutar el análisis de SonarQube ante la compilación del desarrollador o mediante un pipeline de integración continua, sin la necesidad de descargar, configurar y mantener manualmente una instalación de SonarQube Runner.

Documentación oficial:
SonarScanner for Maven | SonarQube Docs

Prerrequisitos:

  • Java version 8
  • Apache Maven configurado con SonarQube settings-sonar.xml
  • Servidor de SonarQube 7.1 con plugin de OpenAPI instalado

Procedimiento:

  • Abrir una consola shell en la ubicación raíz del proyecto y ejecutar el comando Maven para realizar el análisis del código fuente:
    mvn clean verify sonar:sonar
  • Comprobar la correcta finalización del comando inspeccionando la respuesta que debería ser similar a la siguiente:
  • Navegar a la url brindada por el build (resaltado en la imagen anterior en la linea 7) para acceder al informe en SonarQube.

El reporte del análisis quedará disponible como un proyecto creado en el servidor de SonarQube:

Vista del reporte en SonarQube

Archivos disponibles para descargar:

--

--