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容器
cat /var/jenkins_home/secrets/initialAdminPassword
查看jenkins初始密碼
cat /var/jenkins_home/secrets/initialAdminPassword
修改docker權限
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桌面啦。
重點是我們修改過的頁面