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/
First install Docker on your system, it is available for Windows, Mac and Linux. Click here to download Docker
After installing run: docker version
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
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
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
At this point you should have Sonar working fine, access http://localhost:9000/ and see if everything works as expected.
Find the CONTAINER ID using the command:
docker ps --all
Start a container with the specified CONTAINER ID.
docker start YOUR_CONTAINER_ID
Find the CONTAINER ID using the command:
docker ps --all
Stop a container with the specified CONTAINER ID
docker stop YOUR_CONTAINER_ID
Following are commands in case you messed up and want to start again.
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)
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)
Removes all images downloaded, just take care with it since you will need to download all the dependencies again.
docker rmi $(docker images -q)
@suhastridot I never made it run in a ec2 instance, some guys mentioned in comments stuff about the vm and file system options. Maybe that would put you in the direction.