Imagen Docker para SonarQube con plugins preconfigurados y ajustes del CNES dedicados a la integración continua.
Esta imagen es una imagen de servidor SonarQube preconfigurada derivada de Docker-CAT. Contiene los mismos plugins y las mismas reglas para el análisis de código. Está basado en la versión LTS de SonarQube.
SonarQube en sí es un proyecto de código abierto en GitHub: SonarSource/sonarqube.
Para versiones y registro de cambios: Versiones de GitHub.
Esta imagen se basa en la imagen oficial de SonarQube LTS, a saber, sonarqube: 8.9.6-community, y ofrece características adicionales.
Las características adicionales son:
- Modificación obligatoria de la contraseña de administrador predeterminada para ejecutar un contenedor.
- Comprobación del estado del contenedor.
- Más plugins (ver la lista)
- Configuración CNES
- Reglas Java del CNES
- Perfiles de calidad CNES para Java, Python, C, C++ y VHDL
- CNES Quality Gate (establecido como predeterminado)
Esta imagen está hecha para ser utilizada junto con una imagen de sonar-escáner preconfigurada que incorpora todas las herramientas necesarias: cnescatlab/sonar-scanner. Sin embargo, no es obligatorio usarlo.
Es una imagen docker normal. Por lo tanto, se puede construir con los siguientes comandos.
# from the root of the project
$ docker build -t lequal/sonarqube .
Para luego ejecutar un contenedor con esta imagen, consulte la guía del usuario.
Para ejecutar las pruebas y crear las suyas propias, consulte la documentación de la prueba.
Esta imagen está disponible en Docker Hub: lequal/sonarqube.
Desde su creación, esta imagen ha sido diseñada para ser utilizada en producción. Por lo tanto, dejar la contraseña de administrador predeterminada (es decir, "admin") nunca será una opción. En este sentido, se proporcionará una nueva contraseña para la cuenta de administrador estableciendo la variable de entorno SONARQUBE_ADMIN_PASSWORD
.
SONARQUBE_ADMIN_PASSWORD
está vacío o es igual a "admin".
Para ejecutar la imagen localmente:
# Recommended options
$ docker run --name lequalsonarqube \
--rm \
-p 9000:9000 \
-e SONARQUBE_ADMIN_PASSWORD="admin password of your choice" \
lequal/sonarqube:latest
# To stop (and remove) the container
Ctrl-C
# or
$ docker container stop lequalsonarqube
De forma predeterminada, SonarQube utiliza una base de datos integrada que se puede utilizar para pruebas, pero en producción el uso de una base de datos externa para la persistencia de datos es obligatorio. El docker-compose.yml
archivo muestra un ejemplo de cómo configurar una base de datos postgres externa. Se puede ejecutar con:
$ docker-compose up -d
# To set variables when running the containers
$ LEQUAL_SONARQUBE_VERSION=1.0.0 POSTGRES_PASSWD=secret-passwd SONARQUBE_ADMIN_PASSWORD="a password" docker-compose up -d
Con una base de datos externa, los datos utilizados por SonarQube se almacenan fuera del contenedor. Significa que el contenedor puede detenerse, reiniciarse, retirarse y recrearse a voluntad.
Para actualizar esta lista, ejecute:
while IFS='|' read -r plugin version url
do
if [ "$url" = "null" ]; then url="n/a"; fi
printf "| %.50s| %.25s| %.75s|\n" "$plugin " "$version " "$url "
done < <(curl -u MY_TOKEN: -s http://localhost:9000/api/plugins/installed | jq -r '.plugins[] | "\(.name)|\(.version)|\(.homepageUrl)"')
# With `MY_TOKEN` your SonarQube personal token.
Se recomienda establecer la propiedad sonar.core.serverBaseURL
en /admin/settings para que los enlaces publicados en los comentarios de relaciones públicas y el correo funcionen.
Si experimentó un problema con la imagen, abra un problema. Dentro de este número, explíquenos cómo reproducir este problema y pegue el registro.
Si desea hacer un PR, por favor ponga 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 CONTRIBUTING.
Errores y solicitudes de funciones: problemas
Para contribuir al proyecto, lea esto sobre los flujos de trabajo de CATLab para imágenes de Docker.
Licenciado bajo la Licencia Pública General GNU, Versión 3.0
Este proyecto es software libre; puede redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General GNU publicada por la Free Software Foundation; ya sea la versión 3 de la Licencia o (a su elección) cualquier versión posterior.