Installing SonarQube Server's Developer or Enterprise Edition from the Docker image
SonarQube Server docker images support running both on the amd64
architecture and on arm64
-based Apple Silicon.
We recommend using Docker Engine version 20.10 and above.
First, check the requirements and perform the pre-installation steps. Then follow these steps for your first installation:
Create volumes to persist data
Creating the following volumes helps prevent the loss of information when updating to a new version or upgrading to a higher edition:
sonarqube_data
: contains data files, such as Elasticsearch indexessonarqube_logs
: contains SonarQube Server logs about access, web process, CE process, and Elasticsearchsonarqube_extensions
: will contain any plugins you install and the Oracle JDBC driver if necessary.
Create the volumes with the following commands:
Make sure you're using volumes as shown with the above commands, and not bind mounts. Using bind mounts prevents plugins from populating correctly.
Add the JDBC driver (if using an Oracle database)
Drivers for supported databases (except Oracle) are already provided. If you're using an Oracle database, you need to add the JDBC driver to the sonar_extensions
volume. To do this:
a. Start the SonarQube Server container with the embedded H2 database:
where <image_name>
is:
- for SonarQube Community Build:
sonarqube
- for SonarQube Server Editions: check the tags currently available on the DockerHub page.
b. Exit once SonarQube Server has started properly.
c. Copy the Oracle JDBC driver into sonarqube_extensions/jdbc-driver/oracle
.
Start the SonarQube Server container
Start the SonarQube Server container:
- either from the command line (docker run) or
- from a configuration file (docker compose).
For docker-based setups, environment variables supersede all parameters that were provided with properties. See Docker environment variables for more details.
There is more information about installing and updating SonarQube Server plugins inside your Docker volume found on the Install a plugin page.
Port binding
By default, the server running within the container will listen on port 9000. You can expose the container port 9000 to the host port 9000 with the -p 9000:9000
argument to docker run
, like the command below:
You can then browse to http://localhost:9000
or http://host-ip:9000
in your web browser to access the SonarQube Server web interface.
Starting the container by using docker run
Run the image with your database properties defined using the -e
environment variable flag:
where <image_name>
is:
- for SonarQube Community Build:
sonarqube
- for the SonarQube Server Editions: check the tags currently available on the DockerHub page.
Starting the container by using Docker compose
Unless you intend to delete the database and start new when running your image ,be careful not to use -v
to docker-compose down
and, be careful when running commands like docker system prune
or docker volume prune
; regardless if you use an external: true
parameter, your database volumes will not persist beyond the initial startup and shutdown of SonarQube Server.
If you're using Docker Compose, use this yml file example as a reference when configuring your .yml
file. In the image
tag, use the tag value corresponding to the SonarQube Server version you want to use, e.g, to use the LTA version of the Developer Edition:
Check the SonarQube Server image tags currently available on the DockerHub page.
Next steps
Once your server is installed and running, you can access SonarQube Server UI in your web browser (the default system administrator credentials are admin/admin) and you're ready to begin analyzing source code.
Was this page helpful?