Files
org.ccalm.jwt/Jenkinsfile
2025-03-11 07:32:27 +05:00

56 lines
1.8 KiB
Groovy

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"
"""
}
}
}
}
}