diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9d03384eeb40b8e6e3d44c9a6605944868fea084..57994e2665ce81d32d12a6e72785d86966f98216 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -21,5 +21,48 @@
 #
 # ** end header
 #
+#
+
+variables:
+   SQL_RESTORE: ""
+   NIS_ENABLE: ""
+   NIS_DOMAIN: ""
+   NIS_SERVER: ""
+   PORT_SSL: ""
+   DOCKER_TZ: ""
+   DOCKER_MAIL: ""
+   MAKE_TEST: ""
+   MYSQL_ROOT_PASSWORD: caosdb1234
+   CI_REGISTRY_IMAGE: $CI_REGISTRY/caosdb
+   # When using dind service we need to instruct docker, to talk with the
+   # daemon started inside of the service. The daemon is available with
+   # a network connection instead of the default /var/run/docker.sock socket.
+   #
+   # The 'docker' hostname is the alias of the service container as described at
+   # https://docs.gitlab.com/ee/ci/docker/using_docker_images.html#accessing-the-services
+   #
+   # Note that if you're using the Kubernetes executor, the variable should be set to
+   # tcp://localhost:2375/ because of how the Kubernetes executor connects services
+   # to the job container
+   # DOCKER_HOST: tcp://localhost:2375/
+   #
+   # For non-Kubernetes executors, we use tcp://docker:2375/
+   DOCKER_HOST: tcp://docker:2375/
+   # When using dind, it's wise to use the overlayfs driver for
+   # improved performance.
+   DOCKER_DRIVER: overlay2
+   # Set versions here if you want to have non standard commits/branches
+   #MYSQLBACKEND: master
+   #SERVER: f574fd3b7
+   #WEBUI: 22c60d75d5
+   #PYLIB: f-feature
+services:
+   - docker:dind
+
 code_style:
     script: "flake8 --count ."
+
+
+services:
+  - name: mariadb:10.4
+  - name: "$CI_REGISTRY_IMAGE:latest"