Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sumitsahoo/b960eba1d2046e77e4d0e18438d5fcc4 to your computer and use it in GitHub Desktop.
Save sumitsahoo/b960eba1d2046e77e4d0e18438d5fcc4 to your computer and use it in GitHub Desktop.
How easily run Sonar Qube and PostgresSQL with Docker Containers

TL;DR

After installing Docker, follow three steps:
Step 1:
Run: docker network create mynet

Step 2:
Run: docker run --name sonar-postgres -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d -p 5432:5432 --net mynet postgres

Step 3:
Run: docker run --name sonarqube -p 9000:9000 -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -e SONARQUBE_JDBC_URL=jdbc:postgresql://sonar-postgres:5432/sonar -d --net mynet sonarqube:5.6

Step 4:
Access http://localhost:9000/

How easily run Sonar Qube and PostgresSQL with Docker Containers

First install Docker on your system, it is available for Windows, Mac and Linux. Click here to download Docker

After installing run: docker version

Creating a Docker Network

In order to stablish a communication between Sonar and Postgres containers, we need to create a Docker Network. The following command will create a network called mynet.
docker network create mynet

Creating a PostgreSQL Docker Container

Sonar Qube depends on a database to works correctly, in this example we choose PostgreSQL. The command below creates and runs an instance of PostgreSQL in background with username sonar, password sonar, bounding host port 5432 with container port 5432 inside mynet Docker network.
docker run --name sonar-postgres -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d -p 5432:5432 --net mynet postgres

Creating a Sonar Qube Docker Container

Creates and runs an instance of Sonar Qube 5.6 with database user, pass and JDBC connection by parameter. Bounding the host port 9000 to container port 9000 inside mynet Docker Network.
docker run --name sonarqube -p 9000:9000 -e SONARQUBE_JDBC_USERNAME=sonar -e SONARQUBE_JDBC_PASSWORD=sonar -e SONARQUBE_JDBC_URL=jdbc:postgresql://sonar-postgres:5432/sonar -d --net mynet sonarqube:5.6

It works!

At this point you should have Sonar working fine, access http://localhost:9000/ and see if everything works as expected.

How to start and stop previously created Docker Container

How to start a Docker Container.

Find the CONTAINER ID using the command:
docker ps --all

Start a container with the specified CONTAINER ID.
docker start YOUR_CONTAINER_ID

How to stop a Docker Container.

Find the CONTAINER ID using the command:
docker ps --all

Stop a container with the specified CONTAINER ID
docker stop YOUR_CONTAINER_ID

Undoing everything

Following are commands in case you messed up and want to start again.

Stoping all Docker Containers

Stops all containers that are running, if you run this command more than once in a row it will return a message about parameters, this is normal since the second part of the command won't anything after the first time.
docker stop $(docker ps -a -q)

Deleting all Docker Containers

Removes all containers, make sure you stopped all containers before run this command, otherwise it won't complete correctly.
docker rm $(docker ps -a -q)

Deleting all Docker Images

Removes all images downloaded, just take care with it since you will need to download all the dependencies again.
docker rmi $(docker images -q)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment