diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index bb8c9178299861b3cf9bf7e566ed723b85456d90..88cf972f0cc4020b7e87daded0a3df0ef184f305 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,6 @@
 default:
   before_script:
-    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
+    - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY
   interruptible: true
 
 stages:
@@ -28,7 +28,22 @@ get-cookie:
       - cookies.txt
     expire_in: 5 minutes
 
-docker-build:
+build-latest: 
+  stage: build 
+  image: docker:latest
+  services:
+    - docker:dind
+  dependencies:
+    - get-cookie
+  script: 
+    - echo "Building and tagging as latest"
+    - docker pull $CI_REGISTRY_IMAGE:latest || true
+    - docker build --build-arg BUILDKIT_INLINE_CACHE=1 --cache-from $CI_REGISTRY_IMAGE:latest -t $CI_REGISTRY_IMAGE:latest .
+    - docker push $CONTAINER_IMAGE:latest 
+  only: 
+    - main
+
+build-version:
   stage: build
   image: docker:latest
   services:
@@ -36,7 +51,10 @@ docker-build:
   dependencies: 
     - get-cookie
   script:
+    - echo "Building and tagging as $CI_COMMIT_REF_NAME"
     - docker pull $CI_REGISTRY_IMAGE:latest || true
-    - docker build --build-arg BUILDKIT_INLINE_CACHE=1 --cache-from $CI_REGISTRY_IMAGE:latest --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA --tag $CI_REGISTRY_IMAGE:latest .
-    - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
-    - docker push $CI_REGISTRY_IMAGE:latest
+    - docker build --build-arg BUILDKIT_INLINE_CACHE=1 --cache-from $CI_REGISTRY_IMAGE:latest -t $CI_REGISTRY_IMAGE:${CI_COMMIT_REF_NAME#v} .
+    - docker push $CI_REGISTRY_IMAGE:${CI_COMMIT_REF_NAME#v}
+  only: 
+    - tags 
+    - /^v\d+\.\d+$/
\ No newline at end of file