Skip to content

Instantly share code, notes, and snippets.

@edwinlab
Created December 27, 2017 10:04
Show Gist options
  • Save edwinlab/e8ef8ae3b2e790e75c9d80463b6ff052 to your computer and use it in GitHub Desktop.
Save edwinlab/e8ef8ae3b2e790e75c9d80463b6ff052 to your computer and use it in GitHub Desktop.

Run SonarQube with a PostgreSQL database

Requirements

  • Docker Engine 1.9
  • Docker Compose 1.6

Compose file

Create this docker-compose.yml file:

version: "2"

services:
  sonarqube:
    image: sonarqube
    ports:
      - "9000:9000"
    networks:
      - sonarnet
    environment:
      - SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar
    volumes:
      - sonarqube_conf:/opt/sonarqube/conf
      - sonarqube_data:/opt/sonarqube/data
      - sonarqube_extensions:/opt/sonarqube/extensions
      - sonarqube_bundled-plugins:/opt/sonarqube/lib/bundled-plugins

  db:
    image: postgres
    networks:
      - sonarnet
    environment:
      - POSTGRES_USER=sonar
      - POSTGRES_PASSWORD=sonar
    volumes:
      - postgresql:/var/lib/postgresql
      # This needs explicit mapping due to https://github.com/docker-library/postgres/blob/4e48e3228a30763913ece952c611e5e9b95c8759/Dockerfile.template#L52
      - postgresql_data:/var/lib/postgresql/data

networks:
  sonarnet:
    driver: bridge

volumes:
  sonarqube_conf:
  sonarqube_data:
  sonarqube_extensions:
  sonarqube_bundled-plugins:
  postgresql:
  postgresql_data:

Use docker-compose to start the containers.

$ docker-compose up

Restart the containers (after plugin upgrade or install for example).

$ docker-compose restart sonarqube

Analyse a project:

mvn sonar:sonar \
  -Dsonar.host.url=http://$(boot2docker ip):9000 \
  -Dsonar.jdbc.url=jdbc:postgresql://$(boot2docker ip)/sonar

To be improved

  • Backup
  • Clustering
  • Upgrade
  • Admin password
  • Plugins
  • ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment