pipeline { agent any environment { APP_NAME = "kz_istransit_jwt" IMAGE_NAME = "myrepo/kz_istransit_jwt" DOCKER_REGISTRY = "my-docker-registry.com" // Укажите свой Docker Registry } stages { stage('Checkout') { steps { git branch: 'main', url: 'git@github.com:your-repo.git' } } stage('Build JAR') { steps { script { sh './mvnw clean package -DskipTests' } } } stage('Build Docker Image') { steps { script { sh "docker build -t ${IMAGE_NAME}:latest ." } } } stage('Push to Registry') { steps { withDockerRegistry([credentialsId: 'docker-hub-credentials', url: "https://${DOCKER_REGISTRY}"]) { sh "docker tag ${IMAGE_NAME}:latest ${DOCKER_REGISTRY}/${IMAGE_NAME}:latest" sh "docker push ${DOCKER_REGISTRY}/${IMAGE_NAME}:latest" } } } stage('Deploy') { steps { sshagent(['ssh-server-credentials']) { sh """ ssh user@remote-server "docker pull ${DOCKER_REGISTRY}/${IMAGE_NAME}:latest && docker stop ${APP_NAME} || true && docker rm ${APP_NAME} || true && docker run -d --name ${APP_NAME} -p 8080:8080 -v /opt/kz_istransit_jwt/config.yml:/app/config.yml ${DOCKER_REGISTRY}/${IMAGE_NAME}:latest" """ } } } } }