zoukankan      html  css  js  c++  java
  • jenkins-demo

     
    node('haimaxy-jnlp') {
        stage('Clone') {
          echo "1.Clone Stage"
          git url: "https://github.com/cnych/jenkins-demo.git"
          script {
              build_tag = sh(returnStdout: true, script: 'git rev-parse --short HEAD').trim()
        }
        stage('Test') {
          echo "2.Test Stage"
        }
        stage('Build') {
          echo "3.Build Docker Image Stage"
          sh "docker build -t cnych/jenkins-demo:${build_tag} ."
        }
        stage('Push') {
          echo "4.Push Docker Image Stage"
          withCredentials([usernamePassword(credentialsId: 'dockerHub', passwordVariable: 'dockerHubPassword', usernameVariable: 'dockerHubUser')]) {
              sh "docker login -u ${dockerHubUser} -p ${dockerHubPassword}"
              sh "docker push cnych/jenkins-demo:${build_tag}"
        }
        stage('YAML') {
          echo "5. Change YAML File Stage"
          sh "sed -i 's/<BUILD_TAG>/${build_tag}/' k8s.yaml"
          sh "sed -i 's/<BRANCH_NAME>/${env.BRANCH_NAME}/' k8s.yaml"
        }
        stage('Deploy') {
          echo "6. Deploy Stage"
          sh "kubectl apply -f k8s.yaml"
        }
    }
     
     
     
    详解:
    1. haimaxy-jnlp:基础设置中的标签,表明会使用salve
    2. build_tag:采用和git commit的记录为镜像的 tag
    3. 此处使用的docker hub仓库,直接登录上传(此处的账户密码可以使用系统管理——》凭证配置)
      k8s中可以创建secret+serviceaccount完成
    4. 在上传镜像时使用变量调用用户名+密码(避免明文)
    5. 替换yaml文件中的tag值
  • 相关阅读:
    古典问题rabbit
    输入两个正整数m和n,求其最大公约数和最小公倍数
    水仙花数
    输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。
    mybatis中的#和$的区别
    SpringMVC 中整合JSON、XML视图
    Gson简要使用笔记
    Spring Framework Artifacts
    Quartz的cron表达式
    清除svn文件目录的bat脚本
  • 原文地址:https://www.cnblogs.com/jayce9102/p/12451774.html
Copyright © 2011-2022 走看看