diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9e6d0a6889f1ce706c792dada7a2a1d12e79b746..0967885f64e83bd855a7e523c115881cfe00ee2d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,4 +1,4 @@
-image: docker:18.09.7
+image: docker:23.0.3
 
 stages:
   - build
@@ -6,11 +6,14 @@ stages:
 
 build_image:
   stage: build
+  image: docker:23.0.3
   services:
-    - docker:18.09.7-dind
+    - 'docker:23.0.3-dind'
+  before_script:
+    - until docker info; do sleep 1; done
   script:
     - if [ "$CI_COMMIT_REF_NAME" == "master" ]; then TAG="latest"; else TAG="develop"; fi
-    - docker build -t $CI_REGISTRY_IMAGE:$TAG .
+    - docker build -t $CI_REGISTRY_IMAGE:$TAG -o type=docker .
     - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
     - docker push $CI_REGISTRY_IMAGE:$TAG