diff --git a/.gitlab/ci/.build-container.yml b/.gitlab/ci/.build-container.yml
index 85c948fd1dbcc61b041e6320ab11864be283a4ff..40066b9a85468bc75ec606ffacd543bcd37cddae 100644
--- a/.gitlab/ci/.build-container.yml
+++ b/.gitlab/ci/.build-container.yml
@@ -8,27 +8,30 @@ build-docker:
   allow_failure: false
   needs: []
   variables:
-    TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_BRANCH
+    TAG: $CI_COMMIT_BRANCH
   tags:
     - shell-builder
 
   rules:
     - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
       variables:
-        TAG: $CI_REGISTRY_IMAGE:latest
+        TAG: latest
     - if: $CI_COMMIT_BRANCH == "develop"
       variables:
-        TAG: $CI_REGISTRY_IMAGE:develop
+        TAG: develop
         BUILDARGS: -race
     - when: always
     - variables:
-        TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME
+        TAG: $CI_COMMIT_SHA
  
   script:
+  # replace all slashes in the tag with hyphen, because slashes are not allowed in tags
+   - TAG=${TAG//\//-}
+   - TARGET=$CI_REGISTRY_IMAGE:$TAG
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
    - docker build --build-arg GITLAB_USER=$GO_MODULES_USER --build-arg GITLAB_TOKEN=$GO_MODULES_ACCESS_TOKEN --build-arg BUILDARGS=$BUILDARGS -t $DOCKER_IMAGE_SHA .
    - docker push $DOCKER_IMAGE_SHA
-   - docker tag $DOCKER_IMAGE_SHA $TAG
-   - docker push $TAG
+   - docker tag $DOCKER_IMAGE_SHA $TARGET
+   - docker push $TARGET
    - docker build --target installer --build-arg GITLAB_USER=$GO_MODULES_USER --build-arg GITLAB_TOKEN=$GO_MODULES_ACCESS_TOKEN --build-arg BUILDARGS=$BUILDARGS -t ${CI_REGISTRY_IMAGE}:testing_${CI_PIPELINE_ID} .
    - docker push ${CI_REGISTRY_IMAGE}:testing_${CI_PIPELINE_ID}