pipeline {
agent any
stages {
stage('Checkout') {
steps {
git 'https://github.com/your-repo.git'
}
}
stage('Build') {
steps {
sh 'mvn clean install'
}
}
stage('Docker Build') {
steps {
script {
def appName = 'your-spring-cloud-app'
def appVersion = '1.0.0'
def dockerImage = "${appName}:${appVersion}"
// 构建Docker镜像并推送到Harbor服务器上
sh "docker build -t ${dockerImage} ."
sh "docker login harbor.example.com"
sh "docker push ${dockerImage}"
}
}
}
stage('Deploy to Kubernetes') {
steps {
script {
def appName = 'your-spring-cloud-app'
def appVersion = '1.0.0'
def namespace = 'your-namespace'
def deploymentName = '${appName}-deployment'
def serviceName = '${appName}-service'
def containerPort = 8080
def dockerImage = "harbor.example.com/${appName}:${appVersion}"
// 创建Kubernetes部署
sh "kubectl apply -f k8s/${appName}-deployment.yaml --namespace=${namespace}"
// 更新Kubernetes部署中的镜像引用为Harbor服务器上的镜像
sh "kubectl set image deployment/${deploymentName} ${deploymentName}=${dockerImage} --namespace=${namespace}"
// 创建Kubernetes服务
sh "kubectl apply -f k8s/${appName}-service.yaml --namespace=${namespace}"
}
}
}
}
}