jenkins发布springboot到k8s

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

你可能感兴趣的:(ci/cd,docker,gitlab)