¿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
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.
Autor:
Eider Mauricio Aristizábal
Director de Tecnología e investigación aplicada de GreenSQA.