If you find this useful, remember about giving a start ⭐ to this repo or share it 🔁
This is a complete config for SonarQube with Docker and a custom script for launching SonarScanner.
It is composed by 2 containers:
sonarqube
postgres
-
You need Docker and Docker Compose where you are going to launch this so, if you do not have it... click HERE or go to the end of this
.md
^^ -
Clone this rep.
-
Edit
docker-compose.yml
with the information you want. -
Check you systems Max Virtual Memory limit. With Linux, by default, it is sett to 65530. It should be increase to at leasr 262144:
sudo sysctl -w vm.max_map_count=262144
-
Run
docker compose up
😀. -
After running SonarQube and PostgreSQL, all the folders should have been filled with the data if it exists during the instalation. For future steps, give permision to the volumes content.
-
Check that the 2 containers are deployed:
sonarqube:9.7.1-community "/opt/sonarqube/bin/…" running 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp sonarqube
postgres:alpine3.14 "docker-entrypoint.s…" running 5432/tcp postgresql
-
With the container running correctly, log inside the server with your browser
http://localhost:9000
and update your account password. -
IMPORTANT SECURITY MODIFICATION NOT RECOMENDED FOR PRODUCTION OR REMOTE SERVER SONARQUBE - Go to
Administration -> Security
and disableForce user authentication
. -
Now, with the user authentication" disabled, we can execute
sonar-scanner.sh
. REMEMBER to update this script with the info of the project you want to scann and run./sonar-scanner.sh
. -
When the scanner has finished, you can go to
http://localhost:9000
and check the results.
-
Run Docker Compose:
docker compose up -d
/docker compose up
-
Check Docker Compose's volumens status:
docker compose ps -a
/docker compose ps
-
Check Docker's images:
docker images -a
-
Remove Docker's images:
docker rmi -f imageID1 imageID2 ...
(-f = force) -
Enter to a Docker's volumen:
docker compose exec VolumenID sh
/docker compose exec VolumenID bash
-
Copy a file to the docker we want to:
docker cp file docker_id:/dir
-
Remove all dangling (not tagged or associated with a container) containers, volumes, networks and images:
docker system prune
-
Remove all unused containers and images with at least one container associated to them:
docker system prune -a
-
Shows all unused local images:
docker images ls -f dangling=true
-
Shows all unused local volumes:
docker volume ls -f dangling=true
-
Remove all local volumes not used by at least one container:
docker volume prune
Adjust the installation to your OS. Here you have the one for a VPS with Debian 11
- Docker and Docker Compose installation
- Update the
apt
package index and install packages to allowapt
to use a repository over HTTPS:
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
- Add Docker’s official GPG key:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- Use the following command to set up the repository:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- Starts Docker's service each time you run the SO:
sudo systemctl enable docker
sudo apt-get update
- Install Docker Engine, containerd, and Docker Compose. This will install the latest version:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
- Give permissions to the desired user by adding it the
docker
group:
usermod -aG docker $USER
- Check the version and the installation:
docker compose version
docker --version
If you find any bug or just want to give your feedback (remember the ⭐ ^^), Feel free to do it. I am, like you, constantly learning and things change so quickly that... no one knows ^^
- v1.0 - Current - Creation of the rep with the config finished - 20/06/2024