diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6f9eddf15897c200164e2375a04ef7c15af645e0..8b9540d059c5575b93a75c2c6232234dcd730b83 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -15,28 +15,22 @@ build-master:
   script:
     - VERSION_1=`grep 'version="*"' core/Dockerfile | cut -d '"' -f2`
     - IMAGE_1="$CI_REGISTRY_IMAGE/pvs_core"
-    - docker pull "$IMAGE_1":latest || true
-    - docker build --cache-from "$IMAGE_1":latest -t "$IMAGE_1":latest -t "$IMAGE_1":$VERSION_1 core/
+    - docker build -t "$IMAGE_1":dev -t "$IMAGE_1":$VERSION_1 core/
     - VERSION_2=`grep 'version="*"' preprocessor/Dockerfile | cut -d '"' -f2`
     - IMAGE_2="$CI_REGISTRY_IMAGE/pvs_preprocessor"
-    - docker pull "$IMAGE_2":latest || true
-    - docker build --cache-from "$IMAGE_2":latest -t "$IMAGE_2":latest -t "$IMAGE_2":$VERSION_2 preprocessor/
+    - docker build -t "$IMAGE_2":dev -t "$IMAGE_2":$VERSION_2 preprocessor/
     - VERSION_3=`grep 'version="*"' client/Dockerfile | cut -d '"' -f2`
     - IMAGE_3="$CI_REGISTRY_IMAGE/pvs_client"
-    - docker pull "$IMAGE_3":latest || true
-    - docker build --cache-from "$IMAGE_3":latest -t "$IMAGE_3":latest -t "$IMAGE_3":$VERSION_3 client/
+    - docker build -t "$IMAGE_3":dev -t "$IMAGE_3":$VERSION_3 client/
     - VERSION_4=`grep 'version="*"' cache/Dockerfile | cut -d '"' -f2`
     - IMAGE_4="$CI_REGISTRY_IMAGE/pvs_cache"
-    - docker pull "$IMAGE_4":latest || true
-    - docker build --cache-from "$IMAGE_4":latest -t "$IMAGE_4":latest -t "$IMAGE_4":$VERSION_4 cache/
+    - docker build -t "$IMAGE_4":dev -t "$IMAGE_4":$VERSION_4 cache/
     - VERSION_5=`grep 'version="*"' fluentd/Dockerfile | cut -d '"' -f2`
     - IMAGE_5="$CI_REGISTRY_IMAGE/fluentd"
-    - docker pull "$IMAGE_5":latest || true
-    - docker build --cache-from "$IMAGE_5":latest -t "$IMAGE_5":latest -t "$IMAGE_5":$VERSION_5 fluentd/
+    - docker build -t "$IMAGE_5":dev -t "$IMAGE_5":$VERSION_5 fluentd/
     - VERSION_6=`grep 'version="*"' ingestor/Dockerfile | cut -d '"' -f2`
     - IMAGE_6="$CI_REGISTRY_IMAGE/pvs_ingestor"
-    - docker pull "$IMAGE_6":latest || true
-    - docker build --cache-from "$IMAGE_6":latest -t "$IMAGE_6":latest -t "$IMAGE_6":$VERSION_6 ingestor/
+    - docker build -t "$IMAGE_6":dev -t "$IMAGE_6":$VERSION_6 ingestor/
     - cd ./testing && ./gitlab_test.sh
     - if [ $? -ne 0 ]; then exit 1; fi  # actually fail build
     - docker push "$IMAGE_1":$VERSION_1
@@ -53,7 +47,7 @@ build-master:
     - docker push "$IMAGE_6":latest
   only:
     - master
-
+    - tags
 build:
   image: docker:latest
   stage: build
@@ -63,29 +57,17 @@ build:
     - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
   script:
     - IMAGE="$CI_REGISTRY_IMAGE/pvs_core"
-    - docker pull "$IMAGE":latest || true
-    - docker build --cache-from "$IMAGE":latest -t "$IMAGE":$CI_COMMIT_REF_SLUG -t "$IMAGE":$CI_COMMIT_REF_NAME core/
-    - docker tag "$IMAGE:$CI_COMMIT_REF_NAME" "$IMAGE:latest"
+    - docker build -t "$IMAGE":dev core/
     - IMAGE="$CI_REGISTRY_IMAGE/pvs_preprocessor"
-    - docker pull "$IMAGE":latest || true
-    - docker build --cache-from "$IMAGE":latest -t "$IMAGE":$CI_COMMIT_REF_SLUG -t "$IMAGE":$CI_COMMIT_REF_NAME preprocessor/
-    - docker tag "$IMAGE:$CI_COMMIT_REF_NAME" "$IMAGE:latest"
+    - docker build -t "$IMAGE":dev preprocessor/
     - IMAGE="$CI_REGISTRY_IMAGE/pvs_client"
-    - docker pull "$IMAGE":latest || true
-    - docker build --cache-from "$IMAGE":latest -t "$IMAGE":$CI_COMMIT_REF_SLUG -t "$IMAGE":$CI_COMMIT_REF_NAME client/
-    - docker tag "$IMAGE:$CI_COMMIT_REF_NAME" "$IMAGE:latest"
+    - docker build -t "$IMAGE":dev client/
     - IMAGE="$CI_REGISTRY_IMAGE/pvs_cache"
-    - docker pull "$IMAGE":latest || true
-    - docker build --cache-from "$IMAGE":latest -t "$IMAGE":$CI_COMMIT_REF_SLUG -t "$IMAGE":$CI_COMMIT_REF_NAME cache/
-    - docker tag "$IMAGE:$CI_COMMIT_REF_NAME" "$IMAGE:latest"
+    - docker build -t "$IMAGE":dev cache/
     - IMAGE="$CI_REGISTRY_IMAGE/fluentd"
-    - docker pull "$IMAGE":latest || true
-    - docker build --cache-from "$IMAGE":latest -t "$IMAGE":$CI_COMMIT_REF_SLUG -t "$IMAGE":$CI_COMMIT_REF_NAME fluentd/
-    - docker tag "$IMAGE:$CI_COMMIT_REF_NAME" "$IMAGE:latest"
+    - docker build -t "$IMAGE":dev fluentd/
     - IMAGE="$CI_REGISTRY_IMAGE/pvs_ingestor"
-    - docker pull "$IMAGE":latest || true
-    - docker build --cache-from "$IMAGE":latest -t "$IMAGE":$CI_COMMIT_REF_SLUG -t "$IMAGE":$CI_COMMIT_REF_NAME ingestor/
+    - docker build -t "$IMAGE":dev ingestor/
     - cd ./testing && ./gitlab_test.sh && cd -
   except:
     - master
-