diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b92e147a71bff6a1ac7eefe2c48217800b569a2c..31ed486ad0be0999d8a9056267bbe2863662c080 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -523,7 +523,8 @@ release-images-amd64:
   stage: release
   image: docker:${DOCKER_VERSION}-dind
   variables:
-    PLATFORM: linux/amd64
+    DOCKER_BUILD_EXTRA_ARGS: --quiet --network=host --builder=docker-builder
+    DOCKER_COMPOSE_BUILD_EXTRA_ARGS: --builder=docker-builder
   dependencies:
     - clean-images
     - test-analyse-service
@@ -543,6 +544,7 @@ release-images-amd64:
     - "echo ${CI_REGISTRY_PASSWORD} | docker login --username ${CI_REGISTRY_USER} --password-stdin ${CI_REGISTRY_URL}"
     - "docker logout ${CI_REGISTRY2_URL}"
     - "echo ${CI_REGISTRY2_PASSWORD} | docker login --username ${CI_REGISTRY2_USER} --password-stdin ${CI_REGISTRY2_URL}"
+    - docker buildx create --platform=linux/amd64 --name docker-builder --driver docker-container --use
   script:
     - REPOSITORY_URL=$CI_REGISTRY_URL make release-images
     - REPOSITORY_URL=$CI_REGISTRY2_URL make release-images
@@ -551,8 +553,8 @@ release-images-arm64:
   stage: release
   image: docker:${DOCKER_VERSION}-dind
   variables:
-    PLATFORM: linux/arm64
-    DOCKER_BUILD_EXTRA_ARGS: --quiet --network=host
+    DOCKER_BUILD_EXTRA_ARGS: --quiet --network=host --builder=docker-builder
+    DOCKER_COMPOSE_BUILD_EXTRA_ARGS: --builder=docker-builder
   dependencies:
     - clean-images
     - test-analyse-service
@@ -572,6 +574,7 @@ release-images-arm64:
     - "echo ${CI_REGISTRY_PASSWORD} | docker login --username ${CI_REGISTRY_USER} --password-stdin ${CI_REGISTRY_URL}"
     - "docker logout ${CI_REGISTRY2_URL}"
     - "echo ${CI_REGISTRY2_PASSWORD} | docker login --username ${CI_REGISTRY2_USER} --password-stdin ${CI_REGISTRY2_URL}"
+    - docker buildx create --platform=linux/arm64 --name docker-builder --driver docker-container --use
   script:
     - REPOSITORY_URL=$CI_REGISTRY_URL make release-images
     - REPOSITORY_URL=$CI_REGISTRY2_URL make release-images
diff --git a/make/build.mk b/make/build.mk
index c29e4579d4dcbc7ee1711ffa59ad9555394c0892..271fc3c9ec7e08f73e2cc865b006cfb1ef3b2fe9 100644
--- a/make/build.mk
+++ b/make/build.mk
@@ -2,10 +2,10 @@
 
 .PHONY: build-images
 build-images: ## Build Docker images.
-	docker build $(DOCKER_BUILD_EXTRA_ARGS) --platform=$(PLATFORM) -t dbrepo-core:build --target build ./lib/java/dbrepo-core
-	docker build $(DOCKER_BUILD_EXTRA_ARGS) --platform=$(PLATFORM) -t dbrepo-data-service:build --target build dbrepo-data-service
-	docker build $(DOCKER_BUILD_EXTRA_ARGS) --platform=$(PLATFORM) -t dbrepo-metadata-service:build --target build dbrepo-metadata-service
-	docker compose build $(DOCKER_BUILD_EXTRA_ARGS) --platform=$(PLATFORM)
+	docker build $(DOCKER_BUILD_EXTRA_ARGS) -t dbrepo-core:build --target build ./lib/java/dbrepo-core
+	docker build $(DOCKER_BUILD_EXTRA_ARGS) -t dbrepo-data-service:build --target build dbrepo-data-service
+	docker build $(DOCKER_BUILD_EXTRA_ARGS) -t dbrepo-metadata-service:build --target build dbrepo-metadata-service
+	docker compose build $(DOCKER_COMPOSE_BUILD_EXTRA_ARGS)
 
 .PHONY: build-data-service
 build-data-service: ## Build the Data Service.