1、环境准备
(1)安装k8s(参考一、k8s集群部署-CSDN博客)
(2)安装kubesphere(参考:二、kubesphere安装部署-CSDN博客),并且启用devops,参考KubeSphere DevOps 系统
(3)镜像仓库,本文以(harbor镜像仓库为例,通过kubesphere部署的harbor,参考在 KubeSphere 中部署 Harbor,注意externalURL 一定要设置成我们自己的域名或者ip:port,本人是改成192.168.1.113:30002, 此ip是我k8s master节点的ip,这样外部就能通过此地址访问,同时将k8s所有节点加入此镜像仓库
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"insecure-registries":["192.168.1.113:30002"]
}
#重启k8s
)
(4)准备一个Net8的WepApi项目
2、kubesphere搭建net core的ci/cd
因为KubeSphere的DevOps系统官方未提供.net core的ci/cd解决方案,需要自己搭建
(1)构建net编译镜像
基于官方提供的base镜像构建dotnet的编译环境。使用如下Dockerfile构建用于打包的基础镜像:
# 使用 kubesphere/builder-base:v3.2.0 作为基础镜像
FROM kubesphere/builder-base:v3.2.0
# net8 sdk无法通过 yum install -y dotnet-sdk-8.0直接安装,7以及其他低版本可以直接通过yum # #install -y 安装 先官网下载包
COPY ["dotnet-sdk-8.0.204-linux-x64.tar.gz","dotnet-sdk-8.0.204-linux-x64.tar.gz"]
#报错1. 有些环境比较老的服务器,会出现如下的错误提示,需要更新c++库,因此需要下载新的c++库
COPY ["libstdc++.so.6.0.26","libstdc++.so.6.0.26"]
RUN tar -zxvf dotnet-sdk-8.0.204-linux-x64.tar.gz -C /usr/bin
RUN export PATH=$PATH:/usr/bin
RUN mv libstdc++.so.6.0.26 /lib64
RUN rm -f /lib64/libstdc++.so.6
RUN ln -s /lib64/libstdc++.so.6.0.26 /lib64/libstdc++.so.6
RUN yum install libicu -y
RUN dotnet tool install --global dotnet-sonarscanner --version 5.0.4
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/sonar-scanner-3.3.0.1492-linux/bin:/root/.nuget/tools:/root/.dotnet/tools:/home/dotnet8
CMD ["dotnet", "--version"]
#打包镜像,构建时需要** ,因此尽量是设置代理,保证网络畅通,懂得都懂
docker build --build-arg http_proxy=http://192.168.1.7:7890 --build-arg https_proxy=192.168.1.7:7890 -t 192.168.1.113:30002/ne