diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 87964c83501ffb3feeccf175fe82ce32f4521d06..78a1fe4e50faed8d40e782db23be03b9302675f4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -31,11 +31,43 @@ docker image:
     - echo -n $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
   timeout: 10 hours
   script:
-    - docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME ||
-    - docker pull $CI_REGISTRY_IMAGE:cpu-basic-test || 
     - >
-      DOCKER_BUILDKIT=1 docker build
+      docker build
+      --target otbtf-base
       --network="host"
+      --cache-from $CI_REGISTRY_IMAGE:otbtf-base-cpu-basic-test
+      --cache-from $CI_REGISTRY_IMAGE:otbtf-base-$CI_COMMIT_REF_NAME
+      --tag $CI_REGISTRY_IMAGE:otbtf-base-$CI_COMMIT_REF_NAME
+      --build-arg OTBTESTS="true"
+      --build-arg KEEP_SRC_OTB="true"
+      --build-arg BZL_CONFIGS=""
+      --build-arg BASE_IMG="ubuntu:20.04"
+      --build-arg BUILDKIT_INLINE_CACHE=1
+      .
+    - docker push $CI_REGISTRY_IMAGE:otbtf-base-$CI_COMMIT_REF_NAME
+    - >
+      docker build
+      --target builder
+      --network="host"
+      --cache-from $CI_REGISTRY_IMAGE:otbtf-base-cpu-basic-test
+      --cache-from $CI_REGISTRY_IMAGE:otbtf-base-$CI_COMMIT_REF_NAME
+      --cache-from $CI_REGISTRY_IMAGE:builder-cpu-basic-test
+      --cache-from $CI_REGISTRY_IMAGE:builder-$CI_COMMIT_REF_NAME
+      --tag $CI_REGISTRY_IMAGE:builder-$CI_COMMIT_REF_NAME
+      --build-arg OTBTESTS="true"
+      --build-arg KEEP_SRC_OTB="true"
+      --build-arg BZL_CONFIGS=""
+      --build-arg BASE_IMG="ubuntu:20.04"
+      --build-arg BUILDKIT_INLINE_CACHE=1
+      .
+    - docker push $CI_REGISTRY_IMAGE:builder-$CI_COMMIT_REF_NAME
+    - >
+      docker build
+      --network="host"
+      --cache-from $CI_REGISTRY_IMAGE:otbtf-base-cpu-basic-test
+      --cache-from $CI_REGISTRY_IMAGE:otbtf-base-$CI_COMMIT_REF_NAME
+      --cache-from $CI_REGISTRY_IMAGE:builder-cpu-basic-test
+      --cache-from $CI_REGISTRY_IMAGE:builder-$CI_COMMIT_REF_NAME
       --cache-from $CI_REGISTRY_IMAGE:cpu-basic-test
       --cache-from $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
       --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
@@ -43,9 +75,9 @@ docker image:
       --build-arg KEEP_SRC_OTB="true"
       --build-arg BZL_CONFIGS=""
       --build-arg BASE_IMG="ubuntu:20.04"
-      --build-arg BUILDKIT_INLINE_CACHE=1 
+      --build-arg BUILDKIT_INLINE_CACHE=1
       .
-    - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
+    - docker push $CI_REGISTRY_IMAGE:builder-$CI_COMMIT_REF_NAME
 
 .static_analysis_base:
   stage: Static Analysis
@@ -127,6 +159,12 @@ deploy:
   only:
     - develop
   script:
+    - docker pull $CI_REGISTRY_IMAGE:otbtf-base-$CI_COMMIT_REF_NAME
+    - docker pull $CI_REGISTRY_IMAGE:builder-$CI_COMMIT_REF_NAME
     - docker pull $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
+    - docker tag $CI_REGISTRY_IMAGE:otbtf-base-$CI_COMMIT_REF_NAME $CI_REGISTRY_IMAGE:otbtf-base-cpu-basic-test
+    - docker tag $CI_REGISTRY_IMAGE:builder-$CI_COMMIT_REF_NAME $CI_REGISTRY_IMAGE:builder-cpu-basic-test
     - docker tag $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME $CI_REGISTRY_IMAGE:cpu-basic-test
+    - docker push $CI_REGISTRY_IMAGE:otbtf-base-cpu-basic-test
+    - docker push $CI_REGISTRY_IMAGE:builder-cpu-basic-test
     - docker push $CI_REGISTRY_IMAGE:cpu-basic-test
diff --git a/doc/DOCKERUSE.md b/doc/DOCKERUSE.md
index 69382c9613dd988f0a75d4c1b8eff0cdb487529c..9c100896166250eab6a2f6c2f6abaf4ad2bd9e97 100644
--- a/doc/DOCKERUSE.md
+++ b/doc/DOCKERUSE.md
@@ -26,8 +26,9 @@ Here is the list of OTBTF docker images hosted on [dockerhub](https://hub.docker
 | **mdl4eo/otbtf3.0:gpu-dev**       | Ubuntu Focal  | r2.5   | 7.4.0 | GPU (dev)              | yes       | 5.2,6.1,7.0,7.5,8.6|
 | **mdl4eo/otbtf3.1:cpu-basic**     | Ubuntu Focal  | r2.8   | 7.4.0 | CPU, no optimization   | no        | 5.2,6.1,7.0,7.5,8.6|
 | **mdl4eo/otbtf3.1:cpu-basic-dev** | Ubuntu Focal  | r2.8   | 7.4.0 | CPU, no optimization (dev) |  yes  | 5.2,6.1,7.0,7.5,8.6|
-| **mdl4eo/otbtf3.1:gpu-basic**     | Ubuntu Focal  | r2.8   | 7.4.0 | GPU                    | yes       | 5.2,6.1,7.0,7.5,8.6|
-| **mdl4eo/otbtf3.1:gpu**           | Ubuntu Focal  | r2.8   | 7.4.0 | GPU, no optimization   | yes       | 5.2,6.1,7.0,7.5,8.6|
+| **mdl4eo/otbtf3.1:gpu-basic**     | Ubuntu Focal  | r2.8   | 7.4.0 | GPU, no optimization   | no        | 5.2,6.1,7.0,7.5,8.6|
+| **mdl4eo/otbtf3.1:gpu-basic-dev** | Ubuntu Focal  | r2.8   | 7.4.0 | GPU, no optimization (dev) | yes   | 5.2,6.1,7.0,7.5,8.6|
+| **mdl4eo/otbtf3.1:gpu**           | Ubuntu Focal  | r2.8   | 7.4.0 | GPU                    | no        | 5.2,6.1,7.0,7.5,8.6|
 | **mdl4eo/otbtf3.1:gpu-dev**       | Ubuntu Focal  | r2.8   | 7.4.0 | GPU (dev)              | yes       | 5.2,6.1,7.0,7.5,8.6|
 
 - `cpu` tagged docker images are compiled for CPU usage only.