六安网站推广,最新网推项目,旅游网站建设项目策划书,企业网络品牌推广今天我们来谈谈NetCore在Linux底下的持续集成与部署。NetCore我就不多介绍了#xff0c;持续集成用的是Jenkins#xff0c;源代码管理器用的是GitHub。我们就跟着博文往下走吧。1.Linux环境在进行自动构建之前#xff0c;我们需要一个可以运行的Linux环境#xff0c;并保证… 今天我们来谈谈NetCore在Linux底下的持续集成与部署。NetCore我就不多介绍了持续集成用的是Jenkins源代码管理器用的是GitHub。我们就跟着博文往下走吧。1.Linux环境在进行自动构建之前我们需要一个可以运行的Linux环境并保证环境安装了NetCoreSDK,Git,Jenkins等环境那在这边就不多说环境的安装提供相对应的安装教程大家按照安装就可以不过对Jenkins的安装我会多啰嗦一句。啰嗦的那一句我在安装Jenkins成功的时候进入网页网页会一直保持在下面图这个状态没办法进入到开始页面那解决办法是Jenkins等待进入到Jenkins的工作目录/var/lib/jenkins/修改hudson.model.UpdateCenter.xml文件将http://updates.jenkins-ci.org/update-center.json修改为http://mirror.xmission.com/jenkins/updates/update-center.json重启下Jenkins2.Jenkins自动构建定时构建chown jenkins /ftpfile -R chmod 777 /ftpfile -R dotnet restore dotnet build dotnet publish 创建Jenkins项目配置好自定义工作目录填写源代码路径配置定时任务字段*****含义分钟小时日期月份星期取值范围0-590-231-311-120-7示例每隔15分钟执行一次H/15****每隔2个小时执行一次HH/2***每隔3天执行一次HHH/3**每隔3天执行一次(每月的1-15号)HH1-15/3**每周1,3,5执行一次HH**1,3,5规则指定时间范围a-b指定时间间隔/指定变量取值a,b,c配置构建命令查看构建并运行NetCore注意:因为你建立的自定义工作目录对于jenkins没有读写权限所以可能就会导致构建失败执行下面命令给Jenkins赋予读写权限。触发构建提交代码查看Jenkins切换成触发构建使用密文模式并添加绑定选择刚才添加的凭据添加GitHub服务器2.添加GitHub的凭据也就我们刚才拿到得accessToken进入Settings页面找到左边列表的Developer settings,点击进入可以看到如下点击生成然后勾选,保存即可就可以获得token顺便说下token要记下来不然关闭页面就看不到了。在项目设置中找到webhook设置Jenkins的hook地址到刚才添加的webhook中Jenkins的hook地址为http://你的地址端口/github-webhook当然这个地址应该是外网可以访问的配置GitHub针对我们的项目我们要在自己的项目内添加webhook并配置好webhook的地址。Personal access tokens对于任何第三方访问GitHub的项目是需要授权的Jenkins也是一样的所以我们需要先获取一个accessTokenJenkins配置上面的配置完成之后我们需要返回Jenkins进行再次设置。为Jenkins添加GitHub服务器。Jenkins任务配置因为我们已经将触发构建的前置步骤都做完了那接着我们就要去修改之前的定时构建的配置了修改代码上传GitHub终于我们将之前的定时构建改成了触发构建也就是我们每次Push代码都会触发构建接下来我们试下。3.NetCore部署终于的终于我们把构建这个步骤做好了那么接下来当然就是要部署我们网站咯。运行NetCore运行NetCore最简单了我们只需要在发布后的目录运行dotnet ***.dll就可以了当然前提你要装CoreSDK。nginx托管虽然说上面那样已经运行起来但是由于我们的环境在腾旭云上要访问可以用nginx进行方向代理下下面就简单贴下配置就可以了。server { listen 80; location / { proxy_pass http: proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } 守护进程我们已经知道要运行Core需要使用命令在控制台运行但是一旦退出了Core自然就退出了所以我们在Linux底下需要一个类似IIS的来托管我们运行Core的进程守护进程让其在后台运行自动重启等等功能这个就是supervisorsupervisors是C/S架构的进程控制系统可使用户在类UNIX系统中监控、管理进程。常用于管理与某个用户或项目相关的进程。安装教程可以参考开始表格supervisor的链接同样怎么对于怎么对Core进行守护进程文章内也有讲一步一步按照教程来就可以了。不过我这边还是会讲下我在使用supervisor中遇到的坑。一开始我百度了挺多的发现百度中的文章对于supervisor的日志文件很多都说在/etc/log/supervisor/supervisord.log这个文件内但其实我去找的时候发现并没有查看配置文档发现默认是在tmp中我不知道是centeros 的版本问题还是supervisor版本问题。还有一个就是在根据教程走完配置后要进行启动时可能会出现Unlinking stale socket /tmp/supervisor.sock 这个错误我们只需要解锁下就可以了unlink /tmp/supervisor.sock4.总结一下该篇文章简单介绍了下Linux下Jenkins与GitHub自动构建NetCore与部署很多细点我可能没讲出来我把大大的教程贴出来按照教程走起就可以了这也是我实践过了的肯定可以用的非常感谢大大们然后呢我也想抛砖引玉下在我Jenkins构建时有两个问题不知道谁可以帮我解答下。比如我们的解决方案文件.sln并没有在git项目的根目录下我们要指定需要构建的解决方案呢还有一个就是在命令dotnet publish我们怎么指定发布到另一个文件夹内呢我知道有个参数-o|--output OUTPUT_DIRECTORY,我试了下发现不行 dotnet publish -o /ftpfile/netCore/netCoreJenkins/JenkinsNetCore,会有以下的错误。最后的最后我的下一篇文章是《Linux下Jenkins与GitHub自动构建Node项目(Vue)》期待0.5下吧。原文地址https://www.cnblogs.com/xuhuale/p/11062293.html