Introducción: Como desarrollador React Native y MERN puedes mejorar la calidad de tu código integrando SonarQube localmente con Docker. SonarQube detecta bugs, vulnerabilidades de seguridad, code smells, código duplicado y brechas de cobertura de tests para que tu proyecto sea más mantenible y seguro. En Q2BSTUDIO somos una empresa de desarrollo de software y aplicaciones a medida, especialistas en inteligencia artificial, ciberseguridad y servicios cloud, y recomendamos incorporar análisis estático en el flujo de trabajo para proyectos críticos.
Requisitos previos: Instala Docker Desktop en tu equipo. Ejecuta el instalador adecuado para macOS o Windows y asegúrate de que la aplicación Docker esté corriendo antes de continuar.
Paso 1 Crear docker-compose: En la raíz del proyecto crea un archivo llamado docker-compose.yml con un servicio básico para SonarQube. Ejemplo mínimo en el archivo: services: sonarqube: image: sonarqube:community container_name: sonarqube-local ports: - 9000:9000 environment: - SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true volumes: - sonarqube_data:/opt/sonarqube/data - sonarqube_extensions:/opt/sonarqube/extensions - sonarqube_logs:/opt/sonarqube/logs networks: - sonarqube-network volumes: sonarqube_data: sonarqube_extensions: sonarqube_logs: networks: sonarqube-network: driver: bridge
Paso 2 Añadir scripts al package.json: Agrega scripts útiles como sonar, sonar:start, sonar:stop, sonar:down y sonar:logs para controlar el contenedor con npm o yarn y facilitar análisis locales.
Paso 3 Crear configuración de SonarQube: Crea un archivo sonar-project.properties con la configuración del proyecto. Ejemplo clave: sonar.projectKey=my-app sonar.projectName=My App sonar.projectVersion=1.0.0 sonar.sources=src sonar.tests=__tests__ sonar.exclusions=**/node_modules/**,**/android/**,**/ios/**,**/coverage/**,**/*.spec.ts,**/*.test.ts sonar.language=ts sonar.sourceEncoding=UTF-8 sonar.javascript.lcov.reportPaths=coverage/lcov.info sonar.host.url=https://localhost:9000 Añade la línea sonar.login cuando generes el token.
Paso 4 Ignorar carpetas en git: Añade al .gitignore las carpetas generadas por el scanner como .scannerwork/ y .sonarqube/ para no subir datos temporales al repositorio.
Paso 5 Levantar SonarQube: Abre Docker Desktop y ejecuta el script para iniciar: yarn sonar:start o docker-compose up -d. Espera 1 a 2 minutos y consulta logs con yarn sonar:logs si necesitas ver el proceso de arranque.
Paso 6 Generar token de autenticación: Accede a la interfaz web en https://localhost:9000, inicia sesión con las credenciales por defecto admin admin, cambia la contraseña y genera un token en My Account Security. Copia el token y pégalo en sonar-project.properties como sonar.login=TOKEN_GENERADO.
Paso 7 Instalar Sonar Scanner: Añade la dependencia de desarrollo con npm install --save-dev sonar-scanner o yarn add -D sonar-scanner.
Paso 8 Ejecutar el primer análisis: Ejecuta tus tests con cobertura yarn test --coverage y luego lanza SonarQube con yarn sonar. Revisa resultados en la interfaz web de SonarQube en el puerto 9000.
Uso diario: Mantén SonarQube corriendo en background con yarn sonar:start. Tras cambios en el código ejecuta yarn test --coverage && yarn sonar para actualizar el tablero de calidad. Cuando termines, detén el servidor con yarn sonar:stop.
Configuraciones por tipo de proyecto: Para backend Node.js/Express ajusta sonar.sources=src sonar.tests=src sonar.test.inclusions=**/*.test.js,**/*.spec.js. Para React Native excluye carpetas nativas con sonar.exclusions=**/android/**,**/ios/**.
Problemas comunes y soluciones: Si Docker no corre asegúrate de abrir la aplicación y esperar unos segundos. Si el puerto 9000 ya está en uso identifica el proceso con herramientas del sistema y cámbialo en docker-compose. Si aparece error de autenticación revisa que el token esté correctamente escrito en sonar-project.properties.
Qué analiza SonarQube: calidad del código, bugs potenciales, vulnerabilidades de seguridad, cobertura de tests, duplicaciones y métricas de complejidad. Integrarlo en tu pipeline ayuda a atrapar errores antes de producción y a mantener estándares de desarrollo.
Sobre Q2BSTUDIO: Somos una empresa de desarrollo de software que ofrece aplicaciones a medida y software a medida para empresas de todos los sectores. Además somos especialistas en inteligencia artificial, ciberseguridad, servicios cloud aws y azure y servicios de inteligencia de negocio. Si buscas crear o optimizar una aplicación con enfoque en calidad, seguridad y escalabilidad visita nuestra página de y conoce cómo podemos ayudarte a integrar herramientas y buenas prácticas. Para soluciones avanzadas de automatización e IA empresarial consulta nuestros y descubre agentes IA, ia para empresas y cómo aplicamos power bi para reporting y análisis.
Beneficios clave: detectar bugs antes de producción, mejorar la mantenibilidad, medir y aumentar la cobertura de tests, cumplir estándares de seguridad y facilitar auditorías. Mantener SonarQube en tu flujo local aporta disciplina y visibilidad sobre la salud del código.
Comandos útiles resumidos: yarn sonar:start para iniciar, yarn sonar:stop para parar, yarn sonar:down para desmontar contenedores, yarn sonar:logs para ver logs y yarn sonar para lanzar análisis.
Conclusión: Integrar SonarQube localmente usando Docker es una forma sencilla y poderosa de elevar la calidad de proyectos React Native y MERN. En Q2BSTUDIO unimos experiencia en desarrollo a medida, inteligencia artificial, ciberseguridad y cloud para ofrecer soluciones completas que incluyen prácticas de control de calidad como SonarQube. Si necesitas ayuda con la integración o con arquitecturas seguras y escalables podemos acompañarte en todo el proceso.





