WTM框架使用技巧之:CI/CD(持續集成/持續部署)


1. 什么是WTM框架?

  一個快速、靈活、社區活躍、最最最最高效的.netcore 后台管理系統。詳見 https://wtmdoc.walkingtec.cn/

  歡迎大家付費支持WTMPlus,反哺社區(我已充值,還未使用,等vue3版本)。

2. 通過本文可以實現什么?

通過使用主流的開源軟件或技術實現WTM項目自動化部署到ubuntu系統。

  1. 通過Gitee管理WTM項目代碼
  2. 通過Jenkins獲取代碼提交事件,從而生成WTM鏡像
  3. 容器運行WTM鏡像

3. 你需要准備什么?

  1. 准備一台Ubuntu雲服務器(或虛擬機安裝花生殼,因為要用到外網)
  2. ubuntu、git、docker的基礎知識(沒了解過也無所謂,我會手摸手)
  3. 准備好耐心,本文適合對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 密碼是剛剛獲取到的

系統管理=>插件管理=>高級=>最下方升級站點 輸入  https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
4.4.3 安裝gitee插件
4.4.4 gitee新增令牌
 

 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
View Code

 

配置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"]
View Code

7. 提交、推送源碼

8. 查看jenkins

  耐心等待,第一次比較慢,看網絡環境要10-20分鍾左右,后面就會很快,因為有了基礎鏡像

9. 查看wtm頁面

訪問雲服務器的8888端口(別忘了打開防火牆),可以看到經典的WTM桌面啦。

重點是我們修改過的頁面

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM