diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 598fe105946df9f1ec5e5ee64322da9ed9b2f4b9..4bde505ff1a631c9fad1736e166dae6ae0962bda 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -282,33 +282,8 @@ build-docker:
     - build-semantics-service
     - build-analyse-service
     - build-user-service
-  except:
-    refs:
-      - dev
-      - master
-  script:
-    - cp .env.unix.example .env
-    - make build-docker
-
-build-docker-complete:
-  stage: build-docker
-  needs:
-    - build-metadata-db
-    - build-identifier-service
-    - build-container-service
-    - build-database-service
-    - build-query-service
-    - build-table-service
-    - build-metadata-service
-    - build-semantics-service
-    - build-analyse-service
-    - build-user-service
-  only:
-    refs:
-      - dev
-      - master
   script:
-    - docker system prune -f -a --volumes
+    - bash .scripts/docker-prune.sh
     - cp .env.unix.example .env
     - make build-docker
 
diff --git a/.scripts/docker-prune.sh b/.scripts/docker-prune.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c82dc1b674247df131682619e8bbf30b3d68f541
--- /dev/null
+++ b/.scripts/docker-prune.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+if [[ "$CI_COMMIT_BRANCH" =~ (dev|master) ]]; then
+  echo "pruning for branch ${CI_COMMIT_BRANCH} ..."
+  docker system prune -f -a --volumes
+fi
\ No newline at end of file