Docker Ci Tool Stack

Docker Infrastructure via docker-compose (Jenkins, SonarQube, Nexus, GitLab, Selenium Grid)
Alternatives To Docker Ci Tool Stack
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Docker Selenium7,260
12 hours ago30otherShell
Provides a simple way to run Selenium Grid with Chrome, Firefox, and Edge using Docker, making it easier to perform browser automation
Selenoid2,4441a month ago3April 25, 2021270apache-2.0Go
Selenium Hub successor running browsers within containers. Scalable, immutable, self hosted Selenium-Grid on any platform with single binary.
2 years ago37otherJava
A flexible and scalable container based Selenium Grid with video recording, live preview, basic auth & dashboard.
Docker Ci Tool Stack770
4 years ago10mitGroovy
Docker Infrastructure via docker-compose (Jenkins, SonarQube, Nexus, GitLab, Selenium Grid)
Selenium Grid Extras513
4 years ago154bsd-3-clauseRuby
Simplify the management of the Selenium Grid Nodes and stabilize said nodes by cleaning up the test environment after the build has been completed
Ggr305112 months ago1March 22, 202112apache-2.0Go
A lightweight load balancer used to create big Selenium clusters
Selion2581713 years ago4May 26, 201728apache-2.0Java
Enabling Test Automation in Java
Gridrouter14717 years ago11November 21, 20169otherJava
Selenium-based solution to serve 1000+ browsers
3 months ago2mitPython
Callisto is an open-source Kubernetes-native implementation of Selenium Grid.
Selenium Grid2 Api66
8 years ago5apache-2.0Java
Selenium Grid2 API details / sample code
Alternatives To Docker Ci Tool Stack
Select To Compare

Alternative Project Comparisons

CI Tools Demo

This GitHub repository contains Dockerfiles for running a set of Continuous Integration Tools with a single command. The diagram contains all tools used in the Docker containers.

Docker CI Tools

Blog article on the CI Docker Container,

I use this repository for workshops. This is not production ready. For production I use a configuration management tool like Ansible to provision all docker containers and store passwords and keys in ansible vault. See

Docker CI Toolstack screencast

You can watch a short video that shows most features of this demo, without having to install docker.

Docker CI Toolstack screencast

Mac User

With Docker Toolbox (incl. VirtualBox)


With Docker Mac Native

If you want to use new Docker Mac Native implementation without VirtualBox and Docker Toolbox, follow these steps:

Step 0 - Install Docker Mac Native

Install Docker Mac Native ([] and if you had Toolbox before, make sure to follow these steps here

or install via brew update & brew cask install docker --force .

If everything went fine, docker --version should give something like this (or a higher version number):

$ docker --version
Docker version 17.09.0-ce, build afdb6d4

$ docker-compose --version
docker-compose version 1.16.1, build 6d1ac21

If there´s also docker-machine on your machine, don´t forget to do the mentioned steps here to remove it.

Step 1 - Create needed osxfs mountpoints

Create folders (see Issue 26)

Create a folder in the root directory "/" (Macintosh HD) and name it as opt


  • First $ cd / into the root directory "/"
  • Second $ sudo mkdir /opt

Then create the sub folders jenkins, postgres, gitlab in the "opt" folder.

  • /opt/jenkins via sudo mkdir /opt/jenkins
  • /opt/postgres via sudo mkdir /opt/postgres
  • /opt/gitlab via sudo mkdir /opt/gitlab

Change the owning user to your account, e.g. via sudo chown yourUserName gitlab/

Then configure these folders in Docker / Preferences / File Sharing:


Step 2 - Configure correct path to docker binary

Clone Repository

# Clone Repository and startup all docker container
# Option A: clone via https
git clone --recursive

# Option B: if you have your ssh keys configured for your GitHub account
git clone --recursive [email protected]:marcelbirkner/docker-ci-tool-stack.git

cd docker-ci-tool-stack

Getting started

To get all docker containers up and running, in docker-ci-tool-stack use:

docker-compose up

Linux Users


Please run before executing docker-compose up. This will fix the Docker binary PATH, see Issue 24. This script patches the docker-compose.yml.


Please alter Line 23 in docker-compose.yml under jenkins / volumes from

  • /usr/local/bin/docker:/usr/bin/docker


  • /usr/bin/docker:/usr/bin/docker

This is because '/usr/bin/docker' is the docker binary, see Issue 24.

Selenium Grid

You have start the selenium grid with a separate command, since the selenium container are not part of the default docker-compose.yml.

docker-compose -f docker-compose-selenium.yml up

Access Tools

With docker machine

Tool Link Credentials
Jenkins http://${docker-machine ip default}:18080/ no login required
SonarQube http://${docker-machine ip default}:19000/ admin/admin
Nexus http://${docker-machine ip default}:18081/nexus admin/admin123
GitLab http://${docker-machine ip default}/ root/5iveL!fe
Selenium Grid http://${docker-machine ip default}:4444/grid/console no login required
Conference App http://${docker-machine ip default}:48080/currentSessions no login required

With Docker Mac Native

Tool Link Credentials
Jenkins http://localhost:18080/ no login required
SonarQube http://localhost:19000/ admin/admin
Nexus http://localhost:18081/ admin/admin123
GitLab http://localhost root/5iveL!fe
Selenium Grid http://localhost:4444/grid/console no login required
Conference App http://localhost:48080/currentSessions no login required


Here is an overview of all tools:

  • GitLab is used for storing the Source Code
  • Jenkins contains build job and is triggered once projects in GitLab are updated
  • As part of the CI build, Jenkins triggers a static code analysis and the results are stored in SonarQube
  • The Maven build uses Nexus as a Proxy Repository for all 3rd party libs. The build artifacts are deployed to the Nexus Release Repository
  • The Selenium Grid contains Docker containers running Chrome and Firefox and is used for UI tests

Jenkins Jobs

There are several jobs preconfigured in Jenkins. The Jobs cover the following tasks:

  • Continuous Integration Build with Maven
  • Unit Tests
  • Static Source Analysis results are stored in SonarQube
  • JaCoCo Test Coverage
  • Deployment to Nexus
  • Jenkins Job DSL examples
  • Selenium UI Test

Conference App Jobs

Conference App CI Job

SonarQube Dashboard

Jenkins Jobs

Nexus Repository

Nexus Proxy Repository

Selenium Grid

Selenium Grid

Testing Upgrades

In order to test new versions, I prefer starting out with a blank VirtualBox image. That eliminates any side effects. Afterwards you can throw away the image.

# Create new image
docker-machine create --driver virtualbox --virtualbox-memory 6000 docker-ci-v1

# Configure shell environment
eval $(docker-machine env docker-ci-v1)
Popular Grid Projects
Popular Selenium Projects
Popular User Interface Components Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Continuous Integration