- Docker Engine 1.9
- Docker Compose 1.6
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
- Backup
- Clustering
- Upgrade
- Admin password
- Plugins
- ...