mbopm/sonarqube

By mbopm

Updated about 1 month ago

Sonarqube with plugins and healthcheck

Image
Developer Tools

55

Sonarqube

This is a sonarqube image based on original community image with various preinstalled plugins. It also defines a default healthcheck.

On first startup plugins from /opt/sonarqube/docker/plugins/*.jar are copied to /opt/sonarqube/extensions/plugins/ and a file named /opt/sonarqube/extensions/plugins/initialised is created to skip this step on future startups. This way you can use a volume for /opt/sonarqube/extensions and changes on the plugins aren't reset on every startup.

The following plugins are preinstalled:

  • sonar-apple-plugin (swift + objective-c)
  • sonar-dependency-check-plugin (look for vulnerabilities in dependencies)
  • sonar-shellcheck-plugin (shell support)
  • sonar-yaml-plugin.jar plugin (yaml file support)
  • sonarqube-community-branch-plugin (branch support)

Here is a sample docker-compose.yml file:

services:
  sonarqube:
    image: mbopm/sonarqube:latest
    ports:
      - "127.0.0.1:9000:9000"
    volumes:
      - sonarqube_data:/opt/sonarqube/data:rw
      - sonarqube_logs:/opt/sonarqube/logs:rw
      - sonarqube_extensions:/opt/sonarqube/extensions:rw
      - sonarqube_temp:/opt/sonarqube/temp:rw
    environment:
      SONAR_JDBC_URL: jdbc:postgresql://postgres:5432/sonar
      SONAR_JDBC_USERNAME: sonar
      SONAR_JDBC_PASSWORD: sonar_pass
    depends_on:
      postgres:
        condition: service_healthy
  postgres:
    image: postgres:17-alpine
    environment:
      POSTGRES_DB: sonar
      POSTGRES_USER: sonar
      POSTGRES_PASSWORD: sonar_pass
      PGDATA: /var/lib/postgresql/data/pgdata
    volumes:
      - postgres_data:/var/lib/postgresql/data:rw
    healthcheck:
      test: [ "CMD-SHELL", "sh -c 'pg_isready -U sonar -d sonar'" ]
      interval: 5s
      timeout: 5s
      retries: 10

volumes:
  sonarqube_data:
  sonarqube_logs:
  sonarqube_extensions:
  sonarqube_temp:
  postgres_data:

Docker Pull Command

docker pull mbopm/sonarqube