¿Cómo instalar SonarQube con Postgres usando Docker?

Docker es una tecnología que permite la creación y el uso de contenedores. En Docker se crean despliegues de infraestructura como código fácil, lo cual facilita ahorrar tiempo en el empaquetado, despliegue y configuración de ambientes de operación de aplicaciones. Los archivos que se manejan en esta tecnología indican el paso a paso de las instrucciones a realizar, por eso funcionan como un modelo imperativo de IAC (Infraestructura como código).

Les presentamos una guía de cómo crear un servidor de SonarQube conectado, teniendo en cuenta la base de datos de Postgres y todo esto incluido en una única configuración de Docker Compose. Lo haremos por medio de una maquina CENTOS 7.5 completamente vacía, por lo que vamos a necesitar realizar lo siguiente:

1. Instalar Docker

El paso a paso de instalación de Docker lo puedes encontrar en la documentación oficial de Docker en el siguiente link: https://docs.docker.com/get-docker/, está disponible para Mac, Windows y Linux y las instrucciones varían dependiendo del sistema operativo.

Lo que de forma general debes realizar es:

A. Actualizar la base de datos de paquetes

sudo yum check-update

B. Obtener Docker

curl -fsSL https://get.docker.com/ | sh

 C. Iniciar Docker

sudo systemctl start docker

 D. Verificar que Docker se encuentre en estado ejecutando

sudo service docker start

sudo systemctl status docker

2. Instalar Docker Compose

Docker Compose es una herramienta para definir y correr aplicaciones en múltiples contenedores, se maneja con configuraciones en archivos que utilizan formato YML. Debes descargar e instalar una versión reciente de Docker Compose, en esta guía trabajamos con la 1.24.0. Las versiones las puedes consultar en el siguiente link: https://github.com/docker/compose/releases.

Lo que de forma general debes realizar es:

A. Descargar versión 1.24.0

sudo curl –L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

 B. Asignar permiso de ejecución

sudo chmod +x /usr/local/bin/docker-compose

 C. Comprobar versión

docker-compose --version

3. Configurar Script de IAC

En este paso vamos a configurar los volúmenes que son las carpetas del equipo host que se compartirán con los contenedores. Debes manejar un editor de consola de comando para modificar las rutas y contraseñas de sonar.

Lo que de forma general debes realizar es:

A. Crear directorios de trabajo

mkdir sonar_postgres
cd sonar_postgres
mkdir conf
mkdir data
mkdir extensions

Una vez creados los directorios, debes correr el comando pwd para anotar la ruta del trabajo actual debido a que debe configurarse en los volúmenes (conf, data y extensions) del archivo IAC.

B. Descargar y renombrar archivos IAC

wget https://raw.githubusercontent.com/MrZoidberg/docker-sonarqube/master/recipes/docker-compose-postgres-example.yml

mv docker-compose-postgres-example.yml docker-compose.yml

C. Editar archivo de IAC

Con el editor de tu preferencia: nano, vi, etc. debes modificar el archivo docker compose.yml. En la línea 12 setear sonar.jdbc.password, luego en la línea 28 setear POSTGRES_PASSWORD y definir los directorios de los volúmenes en la línea 15,16 y 17.

4. Crear el contenedor – Montar SonarQube

Lo que de forma general debes realizar para crear el contenedor es:

A. Incrementar las áreas memoria virtual

sudo sysctl -w vm.max_map_count=262144

B. Cambiar el propietario del docker.sock

sudo chown $USER /var/run/docker.sock

Nota: En <USER> poner el usuario de la máquina.

C. Ejecutar docker-compose

docker-compose up

Debes ver que el proceso inicia así:

termina así:

Luego, asegúrate de tener el puerto 9000 habilitado y navega al servidor iniciando sesion (Recuerda cambiar la contraseña por una más segura):

Usuario admin
Clave admin 

Así finalizas el proceso ¡Esperamos que esta guía sea de gran utilidad para ti!, en GreenSQA amamos el conocimiento y nos alegra compartirlo con toda nuestra comunidad para que juntos avancemos y aportemos al desarrollo de nuestro sector, al avance de nuestro país y al impacto positivo en la sociedad del undo entero, liderando nuevas acciones con grandes resultados.

Eider Mauricio Aristizábal, Director de Tecnología e investigación aplicada.

Autor:

Eider Mauricio Aristizábal
Director de Tecnología e investigación aplicada de GreenSQA.