Estas configuraciones han sido probadas en un VPS con Ubuntu 22.04 LTS y Ubuntu 18.04 LTS.

Errores a solucionar

Estos son algunos errores en los logs que me llegaron a suceder y que llegue a encontrar en Internet, cabe mencionar que esto sucede para las versiones: sonarqube:7.8-community y sonarqube:9.9.3-community

11:27:21 ERROR: [2] bootstrap checks failed
11:27:21 [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
11:27:21 [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
2019.07.02 07:26:07 WARN app[][o.s.application.App] SonarQube will require Java 11+ starting on next version
2019.07.02 07:26:07 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /opt/sonarqube/temp
2019.07.02 07:26:07 INFO app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
2019.07.02 07:26:08 INFO app[][o.s.a.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/opt/sonarqube/elasticsearch]: /opt/sonarqube/elasticsearch/bin/elasticsearch
2019.07.02 07:26:08 INFO app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
2019.07.02 07:26:08 INFO app[][o.e.p.PluginsService] no modules loaded
2019.07.02 07:26:08 INFO app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
2019.07.16 07:25:49 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /opt/sonarqube/temp
2019.07.16 07:25:49 INFO app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001
2019.07.16 07:25:50 INFO app[][o.s.a.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/opt/sonarqube/elasticsearch]: /opt/sonarqube/elasticsearch/bin/elasticsearch
2019.07.16 07:25:50 INFO app[][o.s.a.SchedulerImpl] Waiting for Elasticsearch to be up and running
2019.07.16 07:25:50 INFO app[][o.e.p.PluginsService] no modules loaded
2019.07.16 07:25:50 INFO app[][o.e.p.PluginsService] loaded plugin [org.elasticsearch.transport.Netty4Plugin]
OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
ERROR: [1] bootstrap checks failed [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
2019.07.16 07:25:59 WARN app[][o.s.a.p.AbstractManagedProcess] Process exited with exit value [es]: 78
2019.07.16 07:25:59 INFO app[][o.s.a.SchedulerImpl] Process[es] is stopped
2019.07.16 07:25:59 INFO app[][o.s.a.SchedulerImpl] SonarQube is stopped

Permisos para volúmenes locales

SonarQube necesita los siguientes volúmenes:

/opt/sonarqube/data
/opt/sonarqube/extensions
/opt/sonarqube/logs
/opt/sonarqube/conf

Para no perder la configuración cada vez que se reiniciar el contenedor creamos una carpeta dentro del vps para que esta información no se pierda, para este ejemplo tenemos.

/volumen/data/sonarqube/data
/volumen/data/sonarqube/extensions
/volumen/data/sonarqube/logs
/volumen/data/sonarqube/conf

Para esto tendríamos que darle permisos a las carpetas de los volúmenes con el siguiente comando:

sudo chmod 777 /volumen/data/sonarqube/*

Configuración de VPS

A continuación algunas configuraciones que probé para solucionar el problema.

1- Agregamos al archivo  /etc/sysctl.conf lo siguiente:

fs.file-max = 100000
vm.max_map_count = 262144

2- Agregamos al archivo /etc/security/limits.conf

*             hard       nofile     1048576
* soft nofile 1048576
* hard nproc 1048576
* soft nproc 1048576

3- Ejecutamos el siguiente comando sudo sysctl -w vm.max_map_count=262144

4- Docker compose a ejecutar

version: "3"
services:
  sonarqube:
    image: sonarqube:9.9.3-community
    depends_on:
      - db
    environment:
      SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
      SONAR_JDBC_USERNAME: sonar
      SONAR_JDBC_PASSWORD: sonar
    volumes:
      - /volumen/data/sonarqube/data:/opt/sonarqube/data
      - /volumen/data/sonarqube/extensions:/opt/sonarqube/extensions
      - /volumen/data/sonarqube/logs:/opt/sonarqube/logs
      - /volumen/data/sonarqube/conf:/opt/sonarqube/conf
    ports:
      - "9000:9000"
  db:
    image: postgres:12
    environment:
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar
    volumes:
      - postgresql:/var/lib/postgresql
      - postgresql_data:/var/lib/postgresql/data
volumes:
  postgresql:
  postgresql_data:
(Visited 30 times, 1 visits today)
¿Te resultó útil este artículo?
SiNo

Comments are closed.

Close Search Window