56 lines
1.8 KiB
Groovy
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"
|
|
"""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|