WTM框架使用技巧之:CI/CD(持续集成/持续部署)
1. 什么是WTM框架?
一个快速、灵活、社区活跃、最最最最高效的.netcore 后台管理系统。详见 https://wtmdoc.walkingtec.cn/
欢迎大家付费支持WTMPlus,反哺社区(我已充值,还未使用,等vue3版本)。
2. 通过本文可以实现什么?
通过使用主流的开源软件或技术实现WTM项目自动化部署到ubuntu系统。
- 通过Gitee管理WTM项目代码
- 通过Jenkins获取代码提交事件,从而生成WTM镜像
- 容器运行WTM镜像
3. 你需要准备什么?
- 准备一台Ubuntu云服务器(或虚拟机安装花生壳,因为要用到外网)
- ubuntu、git、docker的基础知识(没了解过也无所谓,我会手摸手)
- 准备好耐心,本文适合对ubuntu不是很熟悉,但是想把WTM运行在Ubuntu上的朋友。包括git、gitee配置、jenkins安装配置部署,很多都是一劳永逸的,坚持下来,会有收获
4. 安装配置基础环境
4.1关于gitee
4.1.1 什么是gitee
国产免费git源码管理平台
4.1.2 gitee可以干什么
多人协作 、代码备份、触发自动化构建(webhook)
4.1.3 下载安装git https://git-scm.com/download/win
4.1.4 下载安装tortoisegit及语言包 https://tortoisegit.org/download/
4.2 git管理WTM代码
4.2.1 新建WTM项目
简单起见,先使用sqlite
4.2.2 gitee注册、登陆
4.2.3 gitee管理wtm代码
新建代码仓
复制代码仓地址
克隆代码仓,输入代码仓地址
wtm代码放入git所在文件夹
提交代码
推送代码
刷新gitee页面,可以看到提交的代码
4.3 关于docker
4.3.1 什么是docker
将WTM和.netcore运行时打包在一起,生成一个镜像,从而运行在任何操作系统中
4.3.2 docker安装
sudo curl -fsSL https://get.docker.com | bash -s docker
4.4 关于Jenkins
4.4.1 jenkins
基于java的持续集成工具,用来实现自动获取gitee提交事件,拉去代码、编译代码、构建WTM镜像、运行WTM镜像。
4.4.2 jenkins安装
注意这里没有持久化。
sudo docker run -d --restart always --name testjenkins -p 8888:8080 -p 50001:50000 -e TZ="Asia/Shanghai" \ -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -d jenkins/jenkins:lts
进入jenkins容器
1 | cat /var/jenkins_home/secrets/initialAdminPassword |
查看jenkins初始密码
1 | cat /var/jenkins_home/secrets/initialAdminPassword |
修改docker权限
1 | sudo chmod 777 /var/run/docker .sock |
访问主机9090端口,用户名jenkins 密码是刚刚获取到的


4.4.5 jenkings 配置gitee插件
系统管理=>系统配置
添加Gitee凭据,用自己的gitee用户名和密码
4.4.6 新建任务
生成一个webhook密码,先记下来
构建新增shell,等下步执行完后再保存

#!/bin/bash echo start docker build -t wtmtest . docker stop wtmapp docker rm wtmapp docker run -d --restart always --name wtmapp -p 8888:80 wtmtest docker restart wtmapp
配置gitee的webhook,保存后,再保存上一步的jenkins
5.修改WTM源码
wtm MVC项目配置文件新增,以防止其余的多语言看起来比较乱
<SatelliteResourceLanguages>zh-Hans,en</SatelliteResourceLanguages>
6.修改Dockerfile

#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base WORKDIR /app EXPOSE 80 RUN apt-get update RUN apt-get install libgdiplus -y RUN apt-get install nano -y FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build WORKDIR /src COPY ["WTMtest/WTMtest.csproj", "WTMtest/"] RUN dotnet restore "WTMtest/WTMtest.csproj" COPY . . WORKDIR "/src/WTMtest" RUN dotnet build "WTMtest.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "WTMtest.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENV TZ=Asia/Shanghai ENTRYPOINT ["dotnet", "WTMtest.dll"]
7. 提交、推送源码
8. 查看jenkins
耐心等待,第一次比较慢,看网络环境要10-20分钟左右,后面就会很快,因为有了基础镜像
9. 查看wtm页面
访问云服务器的8888端口(别忘了打开防火墙),可以看到经典的WTM桌面啦。
重点是我们修改过的页面
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤