diff --git a/.drone.yml b/.drone.yml
index 926ac60022500b731519994ac7eb77f1f5c83476..f30dbb82f2619281c0a8013cf1d3bfd53460f70b 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -3,6 +3,38 @@ kind: pipeline
 type: docker
 name: Build-container
 steps:
+- name: detect-image-tag
+  image: archlinux/base
+  commands:
+  - |
+    if  [[ "$DRONE_BRANCH" == "master" ]]; then
+      tag="";
+      echo "Running on default branch '$DRONE_BRANCH': tag = 'latest'";
+    else
+      tag=":$DRONE_BRANCH";
+      echo "Running on branch '$DRONE_BRANCH': tag = $tag";
+    fi
+  - echo "tag=$tag" >> .env
+
+- name: detect-registry-urls
+  image: archlinux/base
+  commands:
+  - registry_image=$(echo "$DRONE_REPO" | awk -F "://" '{print $2}')
+  - registry_domain=$(echo "$registry_image" | awk -F "/" '{print $1}')
+  - echo "registry_image=$registry_image" >> .env
+  - echo "registry_domain=$registry_domain" >> .env
+
+- name: login-to-docker
+  image: docker:dind
+  volumes:
+  - name: dockersock
+    path: /var/run
+  environment:
+    DOCKER_PASSWORD:
+      from_secret: DOCKER_PASSWORD
+  commands:
+      - source .env
+      - echo $DOCKER_PASSWORD | docker login --username $DRONE_REPO_OWNER --password-stdin $registry_domain
 
 - name: Build-docker
   image: docker:dind
@@ -13,20 +45,10 @@ steps:
     DOCKER_PASSWORD:
       from_secret: DOCKER_PASSWORD
   commands:
+      - source .env
       - docker ps -a
       - docker context create build
       - docker buildx create build --use
-      - |
-        if [[ "$DRONE_BRANCH" == "master" ]]; then
-          tag="";
-          echo "Running on default branch '$DRONE_BRANCH': tag = 'latest'";
-        else
-          tag=":$DRONE_BRANCH";
-          echo "Running on branch '$DRONE_BRANCH': tag = $tag";
-        fi
-      - registry_image=$(echo "$DRONE_REPO" | awk -F "://" '{print $2}')
-      - registry_domain=$(echo "$registry_image" | awk -F "/" '{print $1}')
-      - echo $DOCKER_PASSWORD | docker login --username $DRONE_REPO_OWNER --password-stdin $registry_domain
       - docker buildx build --platform linux/amd64,linux/arm,linux/arm64 --push --tag "$registry_image:$tag" .
 
 services: