· Tutoriales · 4 min read
Mejora como desarrollador con SonarQube

🤔 ¿Qué es SonarQube?
SonarQube es una plataforma de código abierto para la inspección continua de la calidad del código para realizar revisiones automáticas con análisis estático de código para detectar bugs, olores de código y vulnerabilidades de seguridad en 15 lenguajes de programación en la versión de código abierto.
También ofrece informes sobre código duplicado, estándares de codificación, pruebas unitarias, cobertura de código, complejidad del código, comentarios, bugs y vulnerabilidades de seguridad.
Cómo ejecutar y usar SonarQube
🐋 Hazlo con Docker
SonarQube es una plataforma completa que necesita ser instalada y configurada con un DBMS como Postgres, para hacer esto usaremos las utilidades Docker y docker-compose.
Depende de tu sistema operativo el proceso de instalación puede cambiar, así que esta es la URL de la página oficial con instrucciones para instalarlo: Instrucciones de Instalación de Docker
Ahora, con nuestras herramientas instaladas, procederemos a escribir un archivo llamado docker-compose.yml dentro de un directorio que contendrá los datos de SonarQube y la base de datos.
version: '3'
services:
sonarqube:
image: sonarqube
expose:
- 9000
ports:
- '127.0.0.1:9000:9000'
networks:
- sonarnet
environment:
- sonar.jdbc.url=jdbc:postgresql://db:5432/sonar
- sonar.jdbc.username=sonar
- sonar.jdbc.password=sonar
volumes:
- sonarqube_conf:/opt/sonarqube/conf
- sonarqube_data:/opt/sonarqube/data
- sonarqube_extensions:/opt/sonarqube/extensions
- sonarqube_bundled-plugins:/opt/sonarqube/lib/bundled-plugins
db:
image: postgres
networks:
- sonarnet
environment:
- POSTGRES_USER=sonar
- POSTGRES_PASSWORD=sonar
volumes:
- postgresql:/var/lib/postgresql
- postgresql_data:/var/lib/postgresql/data
networks:
sonarnet:
volumes:
sonarqube_conf:
sonarqube_data:
sonarqube_extensions:
sonarqube_bundled-plugins:
postgresql:
postgresql_data:
Y dentro del directorio, necesitamos ejecutar
docker-compose up
Esto descarga las imágenes de SonarQube y Postgres, genera y configura ambos contenedores.
Esto deja los logs de esos contenedores ejecutándose en la terminal, si no quieres esto simplemente agrega la bandera -d al comando.
docker-compose up -d
❌ En caso de errores
Si obtienes este error al ejecutar el comando
ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch. bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]`
Necesitas ejecutar
sudo sysctl -w vm.max_map_count=262144
🌐 SonarQube
Abre el navegador web y ve a localhost:9000
- usuario: admin
- contraseña: admin
Puede pedir cambiar la contraseña predeterminada, y luego obtienes un panel como este
⚙️ Configurar un proyecto
En la esquina superior derecha, puedes ver un botón azul Add Project, haz clic en él y selecciona la única opción en la versión de código abierto “Manually”
Ahora, necesitamos agregar
- Clave del proyecto (cadena de ID única)
- Nombre para mostrar (¯_(ツ)_/¯)
Ahora haz clic en el botón Set up, y necesitamos proporcionar un token. Es el identificador que tendremos ante la plataforma. Debemos mantenerlo privado, si se ve comprometido, puedes revocarlo desde la configuración de la cuenta.
Debemos seleccionar el lenguaje o stack de nuestro proyecto, Maven (Java), Gradle (Java), y .NET/Net core(C#, F#, VB) tienen su propia forma de ejecutar el análisis. Todos los demás lenguajes soportados necesitan la aplicación CLI sonnar-scanner para funcionar, puedes ver enlaces directos a toda la documentación necesaria en el mismo asistente dependiendo de tu SO.
Siguiendo las instrucciones del asistente solo queda esperar los resultados y verificar la calidad de tu código, y ver dónde estás cometiendo errores y cómo resolver todo esto con ejemplos y tiempo estimado de esfuerzo para resolver los problemas.
Cuando corrijas cualquiera de estos errores haz un commit y ejecuta nuevamente el comando para escanear el proyecto (el mismo que la primera vez) puedes obtener gráficos y estadísticas de tu progreso resolviendo los problemas
sonar-scanner \
-Dsonar.projectKey=<nombre del proyecto> \
-Dsonar.sources=. \
-Dsonar.host.url=http://localhost:9000 \
-Dsonar.login=<token>
🐰🥕 Eso es todo amigos
Con esto, podrás verificar la calidad de tu código y rastrear tu progreso resolviendo los problemas, en otra publicación te mostraré cómo desplegar esto en un servidor real con tu dominio, para usar remotamente en tus proyectos personales o empresariales.
🙋 Ponte en contacto
Si requieres información complementaria o sugerencias estaré feliz de leerlas, puedes enviarme un correo a [email protected]