阿里云个人镜像仓库是免费使用,直接通过支付宝登录阿里云,产品->弹性计算->容器镜像服务
在这里插入图片描述

  1. 创建镜像仓库
    选择公开,所有人都能下载
    在这里插入图片描述
    选择本地仓库
    在这里插入图片描述
    点进来以后,就会有操作指南
    在这里插入图片描述
  2. 编写jenkinsfile
    这里面需要创建一个新的凭证aliyun-hub-id,即阿里云登录用户名和密码,以及配置REGISTRY和NAMESPACE
pipeline {
  agent {
    node {
      label 'maven'
    }

  }
  stages {
    stage('拉取代码') {
      steps {
        git(credentialsId: 'gitee-id', url: 'https://gitee.com/yuwengoku/security.git', branch: 'master', changelog: true, poll: false)
        container('maven') {
          sh 'mvn clean install -Dmaven.test.skip=true -gs `pwd`/mvn-settings.xml '
        }

      }
    }
    stage('sonar代码质量分析') {
      steps {
        container('maven') {
          withCredentials([string(credentialsId: "$SONAR_CREDENTIAL_ID", variable: 'SONAR_TOKEN')]) {
            withSonarQubeEnv('sonar') {
              sh "mvn sonar:sonar -gs `pwd`/mvn-settings.xml -Dsonar.branch=$BRANCH_NAME -Dsonar.login=$SONAR_TOKEN"
            }

          }

          timeout(time: 1, unit: 'HOURS') {
            waitForQualityGate true
          }

        }

      }
    }
    stage('构建镜像并推送') {
      steps {
        container('maven') {
          sh 'mvn -Dmaven.test.skip=true -gs `pwd`/mvn-settings.xml clean package'
          sh 'cd $PROJECT_NAME && docker build --no-cache -f Dockerfile -t $REGISTRY/$NAMESPACE/$PROJECT_NAME:$PROJECT_VERSION .'
          withCredentials([usernamePassword(passwordVariable : 'DOCKER_PASSWORD' ,usernameVariable : 'DOCKER_USERNAME' ,credentialsId : "$DOCKER_CREDENTIAL_ID" ,)]) {
            sh 'echo "$DOCKER_PASSWORD" | docker login $REGISTRY -u "$DOCKER_USERNAME" --password-stdin'
            sh 'docker push $REGISTRY/$NAMESPACE/$PROJECT_NAME:$PROJECT_VERSION'
          }

        }

      }
    }
    stage('部署到开发环境') {
      steps {
        input(id: "deploy-to-dev-$PROJECT_NAME", message: "是否将[$PROJECT_NAME]部署到集群中?", ok: "部署")
        kubernetesDeploy(configs: "$PROJECT_NAME/deploy/**", enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID")
      }
    }
  }
  environment {
    DOCKER_CREDENTIAL_ID = 'aliyun-hub-id'
    GITEE_CREDENTIAL_ID = 'gitee-id'
    KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig'
    REGISTRY = 'registry.cn-hangzhou.aliyuncs.com'
    NAMESPACE = 'yuwen4wu'
    GITEE_ACCOUNT = 'yuwengoku'
    SONAR_CREDENTIAL_ID = 'sonar-qube'
    BRANCH_NAME = 'master'
  }
  parameters {
    string(name: 'PROJECT_VERSION', defaultValue: 'v0.0Beta', description: '项目版本')
    string(name: 'PROJECT_NAME', defaultValue: '', description: '项目名称')
  }
}

  1. 创建流水线
    这里选择一个代码仓库作为pipeline代码源,也就是选择一个jenkins file
    在这里插入图片描述
    在这里插入图片描述
    这里填写jenkinsfile目录
    在这里插入图片描述
    创建好以后,会直接让你扫描分支
    在这里插入图片描述
    选分支,输入两个参数和名称,就开始执行了
    在这里插入图片描述
    成功
    在这里插入图片描述
    查看阿里云仓库镜像
    在这里插入图片描述

在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐