Jenkins + Net 自动构建流程,支持Windows 服务器下 IIS 部署/ Linux服务器下 Docker部署

安装教程

Linux 下安装Jenkins教程

Windows 下安装Jenkins教程

Jenkins 的安装可以参照上面的两个教程,本篇着重讲述NetCore项目如何自动构建并发布(Linux+Windows 双平台教程)。

Jenkins可以和SVN以及Git相互搭配,起到自动化流水线的作用。首先我们先讲一下SVN+Windows服务器下部署到IIS的教程,首先要在SVN的仓库里配置一条通知给Jenkins,即有提交动作会自动通知给Jenkins,即WebHooks。然后执行bat脚本去进行自动构建,此处我们说一下流程。

  1. 暂停IIS指定项目及应用池
  2. 编译Net项目并复制文件到IIS的发布目录
  3. 重启项目

其中1和2的顺序是可以颠倒的,当明确了这个流程时,在对应去读下文的Bat脚本,你应该就能明白了。
这其中的坑,可能会在于文件占用的情况以及文件过滤的问题,可以参照我下文的代码,即可解决该问题。还有就是SVN去设置通知给Jenkins的时候,其实是执行的一个JAVA命令。需要下载一个叫 jenkins-cli.jar 的Jar包放到SVN的根目录(?),然后commit时填写这些内容。

 java -jar /root/jenkins-cli.jar -s Jenkin项目地址 -auth  Jenkins登录账号:登录密码 build test

Window 下执行Bat脚本

::停止应用程序池及应用程序
::MarsApi 是我IIS里应用池的名字
c:\windows\system32\inetsrv\AppCmd.exe stop apppool /apppool.name:"MarsApi"
c:\Windows\System32\inetsrv\appcmd.exe stop site "MarsApi"

::移动至项目目录,准备执行编译
cd Trunk\src\Apis\Enterprise.Api

::构建项目到DevOps文件夹
::DevOps 是发布后的文件夹名字,你可以随便指定
dotnet publish -o DevOps

::复制构建的文件到IIS发布目录,重试占用3次,5s间隔,过滤pdb文件
::D:\IIS_WEB_ROOT\MarsApi 是我项目的路径
::DDevOps 是前文中的发布文件夹名称
ROBOCOPY  DevOps D:\IIS_WEB_ROOT\MarsApi /MOVE /XO /W:5 /R:3 /XF *.pdb

::启动应用程序池及应用程序
c:\Windows\System32\inetsrv\appcmd.exe start site "MarsApi"
c:\windows\system32\inetsrv\AppCmd.exe start apppool /apppool.name:"MarsApi"

Linux下一般配合用Docker去构建N

Linux下执行sh脚本

#!/bin/bash -il
#移动到发布文件夹
cd  /你程序的目录地址,如Core.Api/;
#构建程序并指定目录,DevOps可任意换成其他名字
dotnet publish -o DevOps;
#移动到发布文件夹
cd DevOps/;
#给镜像起个随机的名字
image_tag=`date +%Y%m%d%H%M%S`
echo $image_tag;
# build镜像并且打上tag
docker build -t 镜像名称:$image_tag .;
docker images;
# 停止并删除旧版容器
CID=$(docker ps | grep "容器名称" | awk '{print $1}')
echo $CID
if [ "$CID" != "" ];then
  echo 停止并删除容器 $CID;
  docker stop 容器名称
  docker rm 容器名称
fi
echo 构建新服务中
#构建容器
docker run -p 8081:80 --name 容器名称 -d 镜像名称:$image_tag;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值