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容器
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桌面啦。
重点是我们修改过的页面

WTM框架使用技巧之:CI/CD(持续集成/持续部署)的更多相关文章
- CI/CD持续集成/持续部署 敏捷开发
敏捷软件开发(英语:Agile software development),又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力.它 ...
- CI / CD /CD 持续集成 持续交付 持续部署
CI / CD /CD 持续集成 持续交付 持续部署 CI CD 是啥?干了啥? CI continuous integration 持续集成 CD continuous delivery 持续交付 ...
- 03 持续集成和部署/基础设施 - DevOps之路
02 持续集成和部署/基础设施 - DevOps之路 文章Github地址,欢迎start:https://github.com/li-keli/DevOps-WiKi 服务的持续集成和部署这里有两套 ...
- Linux-GitLab+Jenkins持续集成+自动化部署
GitLab+Jenkins持续集成+自动化部署 什么是持续集成? (1)Continuous integration (CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个 ...
- 构建gitlab+Jenkins+harbor+kubernetes的DevOps持续集成持续部署环境
构建gitlab+Jenkins+harbor+kubernetes的DevOps持续集成持续部署环境 整个环境的结构图. 一.准备工作 gitlab和harbor我是安装在kubernetes集群外 ...
- SAP开源的持续集成-持续交付的解决方案
SAP开源的持续集成/持续交付的解决方案: (1) 一个叫做piper的github项目,包含一个针对Jenkins的共享库和一个方便大家快速搭建CI/CD环境的Docker镜像: (2) 一套SAP ...
- ThoughtWorks开发持续集成及部署利器:Go
持续集成及部署利器:Go Go是一款先进的持续集成和发布管理系统,由ThoughtWorks开发.(不要和Google的编程语言Go混淆了!)其前身为Cruise,是ThoughtWorks在做咨 ...
- vsts + XX云服务器构建netcore+docker持续集成交付部署
持续集成交付部署是什么意思,它给我们带来什么好处? 先贴一张图 持续集成(Continuous Integration) 持续集成强调开发人员提交了新代码之后,立刻进行构建.(单元)测试(这个要看情况 ...
- 持续集成①安装部署jenkins从git获取代码
持续集成①安装部署jenkins从git获取代码 一:持续集成的概念: 1.1:总体的概括 持续集成Continuous Integration 持续交付Continuous Delivery 持续部 ...
随机推荐
- 异步任务-springboot
异步任务-springboot 异步:异步与同步相对,当一个异步过程调用发出后,调用者在没有得到结果之前,就可以继续执行后续操作.也就是说无论异步方法执行代码需要多长时间,跟主线程没有任何影响,主线程 ...
- HCIE笔记-第五节-IP地址+VLSM
192.168.1.111 -- 点分十进制 -- IPV4地址表示格式 计算机 只能识别 01010101 二进制 4组十进制数 规则:二进制0/1 在不同位表达的含义是不一致的,0永远代表不取值, ...
- Java语言学习day15--7月21日
今日内容介绍1.Eclipse开发工具2.超市库存管理系统 ###01Eclipse的下载安装 * A: Eclipse的下载安装 * a: 下载 * http://www.eclipse.org ...
- python基础练习题(题目 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数)
day10 --------------------------------------------------------------- 实例017:字符串构成 题目 输入一行字符,分别统计出其中英 ...
- C#二次开发BIMFACE系列61 File Management文件管理服务接口二次开发及实战详解
系列目录 [已更新最新开发文章,点击查看详细] 在我的博客<C#二次开发BIMFACE系列61 File Management文件管理服务接口二次开发及实战详解>最后列出了 Fil ...
- linux脚本执行jar包运行
以下为linux下运行jar包的脚本(只需替换jar包名称): #!/bin/bash #这里可替换为你自己的执行程序,其他代码无需更改 APP_NAME=ruoyi-admin.jar cd `di ...
- Linux的Docker安装教程
Docker下载的官方文档地址:https://docs.docker.com/engine/install/centos/ 卸载旧版本 sudo yum remove docker \ docker ...
- Java基础语法Day_01
第1节 java运行环境 day01_01_Java语言发展史 day01_02_计算机进制转换 day01_03_计算机存储单元 day01_04_命令提示符_基本介绍 day01_05_命令提示符 ...
- 攻防世界-MISC:embarrass
这是攻防世界高手进阶区的第二题,题目如下: 点击下载附件一,得到一个压缩包,解压后得到一个流量包 用wireshake打开,CTRL+F搜索字符串flag,记住要选择分组字节流 点击查找 在点击几次过 ...
- 开发一款让我们慢慢变好的微信小程序
1. 前言 朋友,你还记得你想学编程最初的目的是什么吗? 先说说我的吧,我最初想学编程的目的只有一点,感觉编程很酷,会写代码的人很厉害!.随着后面参加工作,我马上产生了让我能够在编程这条路上继续走下去 ...