jenkins实现dotnet项目持续集成、持续部署(CI/CD)

 2021-9-21      dotnet  CentOS  Linux  jenkins  Docker  DevOps 

添加节点

这个jenkins是用docker安装的,我们要操作宿主机构建项目,不是这个容器,所以要把这个容器本身的节点停止,添加宿主机节点
IMG

断开jenkins容器节点 Master

也可以使用标签限制

IMG

新建节点

IMG

添加宿主机连接信息

IMG

添加宿主机认证用户

IMG

生成ssh公钥和私钥

执行:ssh-keygen 一路回车

IMG

进入.ssh文件夹:

cd .ssh/

id_rsa:私钥
id_rsa.pub:公钥

把公钥写到authorized_keys文件:

cat id_rsa.pub > authorized_keys

复制私钥到jenkins

cat id_rsa

IMG

IMG

添加触发器

token可以区分项目
IMG

IMG

把地址复制到代码托管平台,设置触发

IMG

添加构建脚本

IMG

Jenkins构建完成会自动关闭进程及其子进程,造成nohup 无效,需要在命令内加参数BUILD_ID=DONTKILLME

publish.sh

#!/bin/bash
#如果8081被占用杀掉进程
kill -9 $(lsof -i:8081 -t)
cd /home/web/web-demo/
#拉代码
git pull
#发布代码到publish目录
dotnet publish -o publish
cd publish/
#后台启用项目,端口8081
nohup dotnet WebDemo.dll --urls http://0.0.0.0:8081 &

构建记录

IMG

相关文章:

Docker环境安装及基础命令使用
.Net Core项目使用Docker容器部署到Linux服务器
Linux系统Centos7部署DotNet Core项目及环境安装
dotnet项目执行shell脚本实现简单的自动化部署
jenkins实现dotnet项目持续集成、持续部署(CI/CD)
阿里云容器镜像服务提交代码自动构建Docker镜像