如何使用KubeSphere3.0的DevOps系统构建dotnet core应用


已安装KubeSphere,版本v3.0.0
  • 已开启DevOps功能
  • 已有可使用的镜像仓库
  • 已配置好Sonar(可选)
  • 上述准备工作已列出官方文档(如需要私有镜像仓库,可以直接使用Deployment部署nexus3,网上资料比较多),不再赘述。

    官方文档。

    使用

    在KubeSphere的DevOps项目中,提前准备好git密钥。

    建立一条流水线。编辑Jenkinsfile如下:(sonar分析部分可选,请自行替换其中变量)

    pipeline {
      agent {
        node {
          label 'dotnetcore'
        }
    
      }
      stages {
        stage('拉代码') {
          steps {
            git(url: 'https://你的域名.com/你的项目.git', credentialsId: 'git密钥名', branch: 'master', changelog: true, poll: false)
          }
        }
        stage('代码分析') {
          steps {
            withSonarQubeEnv('sonar') {
              container('dotnetcore') {
                sh 'dotnet sonarscanner begin /k:"项目名" /n:项目名'
                sh 'dotnet publish -c Release 源码目录/项目名.csproj -o 源码目录/bin/publish/'
                sh 'dotnet sonarscanner end'
              }
    
            }
    
            waitForQualityGate 'true'
          }
        }
       
        stage('打镜像') {
          steps {
            container('dotnetcore') {
              sh '''cat > 源码目录/Dockerfile << EOF
    FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim
    WORKDIR /app
    EXPOSE 80
    COPY 源码目录/bin/publish/. .
    ENTRYPOINT [ "dotnet","项目名.dll" ]
    EOF
    docker build -f 源码目录/Dockerfile -t 项目名:版本号 .'''
            }
    
          }
        }
        
      }
    }
    

    特别提醒

    开启/关闭Devops系统、配置sonarqube等需修改CRD(自定义资源)下的ClusterConfiguration中的ks-install,该修改会导致ks-install服务工作对集群组件进行重新安装。从而导致jenkins的CasC配置和ks-jenkins-agent等配置被冲掉。如果修改了CRD导致集群组件重新安装,需要重新覆盖上述提到的devops系统相关的配置项。

    相关