最近学习Docker与Jenkins, 网上大部分都是关于Jenkins+Git+Docker进行持续远程部署, 我一直在考虑为什么Jenkins和Docker要绑定一块使用, 因为我想单独使用Jenkins进行本地构建然后远程部署, 那么这就开始行动.准备L...

最近学习Docker与Jenkins, 网上大部分都是关于Jenkins+Git+Docker进行持续远程部署, 我一直在考虑为什么Jenkins和Docker要绑定一块使用, 因为我想单独使用Jenkins进行本地构建然后远程部署, 那么这就开始行动.
准备Linux服务器
我在Azure创建了一台CentOS7服务器, 开放22端口供SSH使用, 并且开放了5000和5001端口.
安装DotNet Core
基于微软官方文档, SSH到服务器使用如下命令安装:
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
sudo yum install dotnet-sdk-3.0
配置Jenkins
Jenkins的安装请参考我的之前的一篇博文, 在此基础上, 我们安装如下插件:
- Publish over SSH
安装完成之后配置相关参数: Manage Jenkins -> Configure System 去配置SSH服务器的参数.
同时还需要添加环境变量允许本地执行dotnet, 首先输出本地所有环境变量:
echo $PATH
然后以输出内容为值, 以Path为键, 添加到Global properties -> Environment variables.
这里有个问题, 我是用密钥链接爆出了如下错误:
jenkins.plugins.publish_over.BapPublisherException: Failed to add SSH key. Message [invalid privatekey: [B@561b51aa]
网上说是因为密钥版本太高了, 重新产生一个低版本的密钥太麻烦, 没办法, 我只能去Azure设置了用户名和密码, 测试之后连接成功.
构建项目
- 新建一个Freestyle Project, 名字随便起, 然后确定进入配置页.
- 在Source Code Management选择git, 并且在Repository URL填入如下地址:
https://gitee.com/jerryqi/JenkinsTest.git
- 在Build Environment进行如下操作:
- 勾选Delete workspace before build starts
- 勾选Send files or execute commands over SSH after the build runs, 填写信息如下:
Key Value Name 默认选择了你之前配置的Server Source files JenkinsTest/bin/Release/netcoreapp3.0/publish/** Remove prefix JenkinsTest/bin/Release/netcoreapp3.0/publish Exec command dotnet JenkinsTest.dll - 在build选项卡中的Add build step选择Excute shell, 并填入如下脚本:
dotnet publish -c Release
最后保存
至此所有工作都以完成, 点击Build Now, 等构建完成, 访问http://serverip:5000, 出现界面即大功告成.
本文标题为:jenkins publish .net core application to linux server


基础教程推荐
- c# – USING块在网站与Windows窗体中的行为不同 2023-09-20
- C#通过标签软件Bartender的ZPL命令打印条码 2023-05-16
- C#中的Linq to JSON操作详解 2023-06-08
- 实例详解C#实现http不同方法的请求 2022-12-26
- C# 解析XML和反序列化的示例 2023-04-14
- C#获取指定目录下某种格式文件集并备份到指定文件夹 2023-05-30
- C#中 Json 序列化去掉null值的方法 2022-11-18
- Unity shader实现高斯模糊效果 2023-01-16
- Unity 如何获取鼠标停留位置下的物体 2023-04-10
- C#调用摄像头实现拍照功能的示例代码 2023-03-09