如何使用KubeSphere3.0的DevOps系统构建dotnet core应用
已安装KubeSphere,版本v3.0.0
上述准备工作已列出官方文档(如需要私有镜像仓库,可以直接使用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系统相关的配置项。