diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6d0f3f3b0f6d072c4e7f6fe09a9018615aaf0c40..c66c11da741d76a754f0938ce43c9a923c2195f6 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,11 +1,7 @@
-image: docker:19.03
-
-variables:
-  DOCKER_TLS_CERTDIR: "/certs"
-  DOCKER_DRIVER: overlay2
+image: docker:18.06
 
 services:
-  - docker:19.03-dind
+  - docker:18.06-dind
 
 before_script:
   - docker info
@@ -13,8 +9,6 @@ before_script:
 test_build_image:
   tags:
   - dunitrust
-  services:
-  - docker:dind
   script:
     - docker build .
   except:
@@ -23,12 +17,13 @@ test_build_image:
 build_image:
   tags:
   - dunitrust
-  services:
-  - docker:dind
   script:
+    - docker pull "$CI_REGISTRY_IMAGE:latest" || true
+    - docker build --cache-from "$CI_REGISTRY_IMAGE:latest" --pull -t "$CI_REGISTRY_IMAGE:$CI_BUILD_TAG" .
     - docker login -u "gitlab-ci-token" -p "$CI_BUILD_TOKEN" $CI_REGISTRY
-    - docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_BUILD_TAG" .
-    - docker login -u "gitlab-ci-token" -p "$CI_BUILD_TOKEN" $CI_REGISTRY
+    - docker tag $CI_REGISTRY_IMAGE:$CI_BUILD_TAG $CI_REGISTRY_IMAGE:latest
     - docker push "$CI_REGISTRY_IMAGE:$CI_BUILD_TAG"
+    - docker push "$CI_REGISTRY_IMAGE:latest"
+
   only:
     - tags