Kubernetes-JenkinsFile

不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。Kubernetes-JenkinsFile,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

V1

​```tex
//说明:在新建项目时,Jenkins需要新增两项参数-字符参数进行构建
//1.Branch:默认值:Master     此次构建要拉取代码的分支版本
//2.ImageTag:默认值:v1.0.0   此次构建生产的镜像版本

// Docker镜像仓库地址
def registry = "harbor.nercoa.com"
// 项目信息
def project = "winjay"
def app_name = "demotest"
def image_name = "${registry}/${project}/${app_name}:${ImageTag}"
def git_address = "https://github.com/WinJayX/JavaDemoTest.git"
// 认证信息
def secret_name = "registry-pull-secret"
def docker_registry_auth = "d675c1e6-e109-4db0-942d-07c0b451432f"
def git_auth = "59f9845d-104a-4813-9018-49d2152f4149"
def k8s_auth = "f03eb670-1480-4cd2-8fb0-efdecf319472"

podTemplate(label: 'jenkins-agent', cloud: 'kubernetes', containers: [
    containerTemplate(
        name: 'jnlp', 
        image: "${registry}/winjay/jenkins-agent:jdk15"
    ),
  ],
  volumes: [
    hostPathVolume(mountPath: '/var/run/docker.sock', hostPath: '/var/run/docker.sock'),
    hostPathVolume(mountPath: '/usr/bin/docker', hostPath: '/usr/bin/docker')
  ],
) 
{
  node("jenkins-agent"){
      // 第一步
      stage('拉取代码'){
         checkout([$class: 'GitSCM', branches: [[name: '${Branch}']], userRemoteConfigs: [[credentialsId: "${git_auth}", url: "${git_address}"]]])
      }
      // 第二步
      stage('代码编译'){
          sh "mvn clean package -Dmaven.test.skip=true"
      }
      // 第三步
      stage('构建镜像'){
          withCredentials([usernamePassword(credentialsId: "${docker_registry_auth}", passwordVariable: 'password', usernameVariable: 'username')]) {
            sh """
              echo '
                FROM tomcat
                MAINTAINER WinJayX <WinJayX@Gmail.com>
                LABEL description="This image is Jenkins Agent with JDK 15"
                LABEL version="jenkins-agent:jdk15"
                USER root
                RUN rm -rf /usr/local/tomcat/webapps/*
                ADD target/*.war /usr/local/tomcat/webapps/ROOT.war 
              ' > Dockerfile
              docker build -t ${image_name} .
              docker login -u ${username} -p '${password}' ${registry}
              docker push ${image_name}
            """
            }
      }
      // 第四步
      stage('部署到K8S平台'){
          sh """
          sed -i 's#\$IMAGE_NAME#${image_name}#' deploy.yml
          sed -i 's#\$SECRET_NAME#${secret_name}#' deploy.yml
          """
          kubernetesDeploy configs: 'deploy.yml', kubeconfigId: 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/160300.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!