diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7a3c0ed68970aac5d238e7f2d6ab9c0d43fca9f8..f2af558beb71024c6b78963568ce09e4c9d88b8e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -189,12 +189,14 @@ ci-test-image-retag:
     - when: always
   interruptible: true
   image: docker:19.03.12
+  services:
+    - docker:19.03.12-dind
   script:
     - |
       # If docker image for this branch does not exist, pull the master image
       # and push it tagged as the image for the current branch
       if ! docker pull ${CI_REGISTRY_IMAGE}${KANIKO_BUILD_IMAGENAME}:${CI_COMMIT_REF_SLUG}; then
-        echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > $HOME/.docker/config.json
+        docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
         docker pull ${CI_REGISTRY_IMAGE}${KANIKO_BUILD_IMAGENAME}:master;
         docker tag ${CI_REGISTRY_IMAGE}${KANIKO_BUILD_IMAGENAME}:master ${CI_REGISTRY_IMAGE}${KANIKO_BUILD_IMAGENAME}:${CI_COMMIT_REF_SLUG}
         docker push ${CI_REGISTRY_IMAGE}${KANIKO_BUILD_IMAGENAME}:${CI_COMMIT_REF_SLUG}