diff --git a/Jenkinsfile b/Jenkinsfile
index 2637bbf06e932587494a5cf667d99a975c621bd6..0da508c58d726722745492aed918049a7598ebdd 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -286,10 +286,12 @@ String buildVersionName() {
 
 Void tagAndPushDockerImage(String newTag){
     withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USER', passwordVariable: 'PASSWORD')]) {
-        sh 'docker login docker.ozg-sh.de -u ${USER} -p ${PASSWORD}'
-
-        sh "docker tag docker.ozg-sh.de/xta-test-server:${getPomVersion()} docker.ozg-sh.de/xta-test-server:${newTag}"
-        sh "docker push docker.ozg-sh.de/xta-test-server:${newTag}"
+		 sh """
+            export DOCKER_USER=${USER}
+            export DOCKER_PASSWORD=${PASSWORD}
+            export BRANCH_NAME=${env.BRANCH_NAME}
+            ./tag_and_push_docker_image.sh ${newTag} ${getPomVersion()}
+        """
     }
 }
 
diff --git a/script/push-docker-image.sh b/script/push-docker-image.sh
new file mode 100644
index 0000000000000000000000000000000000000000..d118b47096392c1c7cfc78d51788e26c7ab645ee
--- /dev/null
+++ b/script/push-docker-image.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+set -e
+
+NEW_TAG="$1"
+POM_VERSION="$2"
+DOCKER_REGISTRY="docker.ozg-sh.de"
+IMAGE_NAME="xta-test-server"
+
+if [ -z "$DOCKER_USER" ]; then
+    echo "Error: USER environment variable must be set"
+    exit 1
+fi
+if [ -z "$DOCKER_PASSWORD" ]; then
+    echo "Error: PASSWORD environment variable must be set"
+    exit 1
+fi
+if [ -z "$BRANCH_NAME" ]; then
+    echo "Error: BRANCH_NAME environment variable must be set"
+    exit 1
+fi
+
+echo "BRANCH_NAME: ${BRANCH_NAME}"
+
+echo "Log into Docker..."
+echo "$DOCKER_PASSWORD" | docker login "$DOCKER_REGISTRY" -u "$DOCKER_USER" --password-stdin
+
+echo "Tag Docker image..."
+docker tag "${DOCKER_REGISTRY}/${IMAGE_NAME}:${POM_VERSION}" "${DOCKER_REGISTRY}/${IMAGE_NAME}:${NEW_TAG}"
+
+echo "Push Docker image..."
+docker push "${DOCKER_REGISTRY}/${IMAGE_NAME}:${NEW_TAG}"
+
+echo "Docker image pushed successfully: ${DOCKER_REGISTRY}/${IMAGE_NAME}:${NEW_TAG}"
\ No newline at end of file