返回

让你事半功倍!轻松掌握 k8s-jenkins 中的 vue 项目流水线发布

见解分享

手把手带你玩转 k8s-jenkins 中的 vue 项目流水线发布!

发布前端项目有木有很头疼?常常需要手动打包、部署,费时费力还容易出错。但借助 k8s-jenkins 中的 vue 项目流水线发布,这一切都变得简单而高效!

准备工作

  1. 安装 k8s-jenkins

    # 安装 k8s-jenkins
    helm install k8s-jenkins
    
  2. 安装 Jenkins 插件

    # 安装 Jenkins 插件
    sudo yum install -y yum-utils
    sudo yum install -y python3-devel
    sudo yum install -y libselinux-python3
    yum install -y epel-release
    sudo yum install -y python2-virtualenv
    sudo yum install -y git
    

流水线配置

  1. 创建 Jenkinsfile

    # 定义 Jenkinsfile
    job_name = 'vue-project'
    
    # 定义项目名称和仓库地址
    project_name = 'vue-project'
    repo_url = 'https://github.com/username/vue-project.git'
    
    # 定义镜像名称和端口
    image_name = 'vue-project'
    image_port = 80
    
    # 定义容器名称和端口
    container_name = 'vue-project'
    container_port = 80
    
    // 创建 Jenkinsfile
    job_name = "vue-project"
    project_name = "vue-project"
    repo_url = "https://github.com/username/vue-project.git"
    image_name = "vue-project"
    image_port = 80
    container_name = "vue-project"
    container_port = 80
    
    // 开始流水线
    def vue_project() {
      stage("Clean") {
        sh "git clean -fx"
      }
    
      stage("Checkout") {
        git url: "$repo_url", branch: 'master'
      }
    
      stage("Build") {
        sh "npm install"
        sh "ng build"
        sh "mkdir -p docker"
        sh "cd docker"
        sh "cp -a ../dist/* ./"
        sh "sed -i \" FROM node AS prod \" Dockerfile"
        sh "sed -i \" COPY . /usr/src/app \" Dockerfile"
        sh "sed -i \" CMD [\"ng\"] \" Dockerfile"
        sh "sed -i \" CMD [\"npm\"] \" Dockerfile"
        sh "sed -i \" CMD [\"json_server\"] \" Dockerfile"
        sh "sed -i \" CMD [\"tail\"] \" Dockerfile"
        sh "sed -i \" CMD [\"-f\"] \" Dockerfile"
        sh "sed -i \" CMD [\"package.json\"] \" Dockerfile"
        sh "sed -i \" CMD [\"-\" ] \" Dockerfile"
        sh "sed -i \" CMD [\"production\"] \" Dockerfile"
        sh "mv -t ../ docker"
        sh "cd ../"
      }
    
      stage("Docker Image Build") {
        sh "cd docker"
        sh "sudo docker build -t $image_name ."
        sh "cd ../"
      }
    
      stage("Push Docker Image") {
        sh "sudo docker push $image_name"
      }
    
      stage("Deploy to Kubernetes") {
        sh "kubectl create -f docker/kubernetes/vue-deployment.yml"
        sh "kubectl create -f docker/kubernetes/vue-service.yml"
      }
    
      stage("Cleanup") {
        sh "rm -rf docker"
      }
    }
    
    vue_project()
    
  2. 构建流水线

    # 构建流水线
    jenkins job build vue-project
    
  3. 启动流水线

    # 启动流水线
    jenkins job start vue-project
    
  4. 部署到 Kubernetes

    # dep