Instala SonarQube en Docker Linux

Tabla de contenidos

SonarQube

SonarQube en Docker es una plataforma de análisis estático de código que permite detectar errores, vulnerabilidades, y problemas de calidad en aplicaciones de software. Compatible con múltiples lenguajes de programación, SonarQube ayuda a mantener un código limpio y eficiente mediante la evaluación de estándares como seguridad, mantenibilidad, y rendimiento. Además, ofrece integración con herramientas de CI/CD, lo que facilita la mejora continua del código en entornos de desarrollo. Usarlo con Docker simplifica su implementación y gestión, permitiendo escalar y monitorizar la calidad del código de manera eficiente.

Instalación de SonarQube en Docker

Se crea el directorio que resguarda el archivo docker-compose.yml, en mi caso será en la ruta: /home/docker/compose/sonarqube

mkdir /home/docker/compose/sonarqube

Una vez creado el directorio, accedemos a él para crear el archivo docker-compose.yml

cd /home/docker/compose/sonarqube

nano docker-compose.yml

Dentro del archivo docker-compose.yml agrega las siguientes lineas, que nos permitirá recuperar la imagen Docker de SonarQube y también algunas configuraciones.

NO OLVIDES ESTA CONFIGURACIÓN DE SONARQUBE EN DOCKER

Antes de que copies y pegues estas lineas, cambia las contraseñas de postgres, sonarqube y pgadmin4.

services:
  postgres:
    image: postgres:latest
    container_name: postgres
    environment:
      POSTGRES_DB: sonarqube
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonarpassword
    volumes:
      - postgres_data:/var/lib/postgresql/data
    restart: always
  sonarqube:
    image: sonarqube:latest
    container_name: sonarqube
    ports:
      - 9000:9000 
    environment:
      - SONAR_JDBC_URL=jdbc:postgresql://postgres:5432/sonarqube
      - SONAR_JDBC_USERNAME=sonar
      - SONAR_JDBC_PASSWORD=sonarpassword
    volumes:
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_logs:/opt/sonarqube/logs
      - sonarqube_extensions:/opt/sonarqube/extensions
    restart: always
  pgadmin:
    image: dpage/pgadmin4:latest
    container_name: pgadmin
    environment:
      PGADMIN_DEFAULT_EMAIL: myemail@mail.com
      PGADMIN_DEFAULT_PASSWORD: mipassword
    ports:
      - 8081:80 
    volumes:
      - pgadmin_data:/var/lib/pgadmin
    restart: always
volumes:
  postgres_data:
  sonarqube_data:
  sonarqube_logs:
  sonarqube_extensions:
  pgadmin_data:

Normalmente separo los contenedores, es decir, en este Docker Compose estoy metiendo tres servicios en uno, no está mal, es válido. Pero para temas de mantenibilidad, se prefiere hacer los servicios separados. En este caso, como SonarQube es el único de mis servicios que utiliza postgres y por ende pgadmin4, es que lo hago de esta manera. Eres libre de hacerlo de cualquier forma.

Una vez que el archivo esté creado, se ejecuta el comando para iniciar la instalación de SonarQube.

sudo docker compose up -d

Una vez que termine de procesar el Docker, es momento de ir al navegador web y poner: http://localhost:9000/

Abrirá una página para poder crear el usuario administrador, el usuario es admin y la contraseña inicial es admin.

Después de actualizar la contraseña del admin, accedemos al panel de control de SonarQube. En este punto, ya se puede enlazar SonarQube a Jenkins, pero eso lo estoy guardando para una publicación en concreto.

Postgres y pgAdmin4

Lo que sigue, es enlazar el servidor de postgres a pgadmin4. Para eso, podemos entrar a http://localhost:8081/ o el puerto que hayas asignado en el Docker Compose.

Las credenciales son las que se pusieron en el Docker Compose.

En la parte superior izquierda, aparece un listado de servers, le das clic derecho, se despliega un menu, seleccionas register y luego server.

A continuación, en la pestaña “General” le asignarás un nombre al servidor, en mi caso sólo le puse “sonar”.

En la pestaña de “Connection” pondrás “postgres” en el Host name, el puerto se queda en 5432, el usuario es el que asignamos en el Docker Compose, el Maintenance database queda como postgres, colocas la contraseña que igual se definió en el Docker Compose y finalmente activas el “save password?”.

Das a guardar y deberías ver las tablas de sonar.

Conclusión

La instalación de SonarQube utilizando Docker Compose es una solución práctica y eficiente que permite desplegar rápidamente en un entorno controlado. Aunque he mencionado en publicaciones anteriores que separar los archivos de docker-compose para cada servicio es una buena práctica de mantenimiento, en este caso, integrar todos los servicios en un único docker-compose.yml simplifica la gestión y puesta en marcha de SonarQube.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *