diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6693dd94ced8dae44d7add5590164b33e35becfe..bc76d499ee235cd0062c7c336a4278ccdd593bec 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,5 +1,16 @@
 ---
-image: docker:19
+image: docker:19-git
+
+# Quickhack based on https://forum.gitlab.com/t/docker-dind-stops-working-after-12-1-0-update/28664/2
+services:
+  - name: docker:19-dind
+    entrypoint: ["env", "-u", "DOCKER_HOST"]
+    command: ["dockerd-entrypoint.sh"]
+variables:
+  DOCKER_HOST: tcp://docker:2375/
+  DOCKER_DRIVER: overlay2
+  DOCKER_TLS_CERTDIR: ""
+
 stages:
   - test
   - deploy
@@ -16,15 +27,15 @@ SonarScanner Analysis:
 
 Publish to Docker Hub:
   stage: deploy
-  before_script:
-    - chmod +x build.sh
   script:
-    - docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD docker.io
-    - ./build.sh $IMAGE_NAMESPACE
-    - docker push "$IMAGE_NAMESPACE/sonar-scanner-cli:latest"
+    - docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD
+    - docker build
+      --build-arg=IMAGE_CREATED="$(date --utc -Iseconds)"
+      --build-arg=IMAGE_REVISION="$(git show --pretty=oneline | tac | tail -n 1 | awk '{print $1}')"
+      --tag $IMAGE_NAMESPACE/sonar-scanner-cli:latest .
   when: manual
   allow_failure: true
   tags:
     - docker
   only:
-    - master
\ No newline at end of file
+    - master