SonarQube is available on Docker Hub, making it easy to test CABL in this environment. Here are two Docker Compose files that we use internally. The first one is using a remote database (with Amazon RDP to be precise), while the second one is using a local Postgres instance also started as a Docker container.

Example 1

version: '3'
volumes:
  sonarqube-data:
  sonarqube-logs:
  sonarqube-extensions:

services:
  sonarqube:
    image: sonarqube:9.9.4-developer # use 9.9.4-community if you don't have a license for SonarQube developer edition
    restart: always
    volumes:
    - sonarqube-data:/opt/sonarqube/data
    - sonarqube-extensions:/opt/sonarqube/extensions
    - sonarqube-logs:/opt/sonarqube/logs
    environment:
    - SONAR_JDBC_USERNAME=pgadmin
    - SONAR_JDBC_PASSWORD=your_password_here
    - SONAR_JDBC_URL=jdbc:postgresql://sonar.xxxxx.eu-west-1.rds.amazonaws.com/sonar
    - SONAR_AUTH_JWTBASE64HS256SECRET=xxxxx # Use echo -n "type_what_you_want" | openssl dgst -sha256 -hmac "key" -binary | base64
    ports:
    - xxxx:9000 # Expose port
    ulimits:
      nofile:
        soft: 65536
        hard: 65536

Example 2

version: '3'
volumes:
  postgres-db:
  sonarqube-data:
  sonarqube-logs:
  sonarqube-extensions:

services:
  postgres:
    image: postgres:12.14-alpine
    restart: always
    volumes:
    - postgres-db:/var/lib/postgresql/data
    environment:
    - POSTGRES_PASSWORD=sonarqube
  sonarqube:
    image: sonarqube:9.9.4-community
    restart: always
    volumes:
    - sonarqube-data:/opt/sonarqube/data
    - sonarqube-extensions:/opt/sonarqube/extensions
    - sonarqube-logs:/opt/sonarqube/logs
    environment:
    - SONAR_JDBC_USERNAME=sonar
    - SONAR_JDBC_PASSWORD=sonarqube
    - SONAR_JDBC_URL=jdbc:postgresql://postgres/sonar
    - SONAR_AUTH_JWTBASE64HS256SECRET=xxxxx # Use echo -n "type_what_you_want" | openssl dgst -sha256 -hmac "key" -binary | base64
    links:
    - postgres
    ports:
    - xxxx:9000 # Expose port
    ulimits:
      nofile:
        soft: 65536
        hard: 65536

Install CABL

Once SonarQube is up and running, copy the JAR files from the latest release to the downloads directory of your sonarqube-extensions Docker volume, and restart the instance. You'll then be able to install your license using the standard process