原文地址:https://www.cnblogs.com/Jackyye/p/12588182.html
该教程的环境基于
服务器系统:CentOs
软件需部署:Docker,Docker Registry(Docker私有库),JDK,Jenkins(非docker安装),Gogs(Git私有库)
Jenkins所需插件:
Gogs plugin
SSH plugin
首先我们要明确实现持续集成/持续发布的具体思路。
在git仓库收到推送的时候,触发webhook,webhook将请求发送到jenkins服务器。
触发jenkins流水线/计划。在jenkins计划中,git pull 最新的代码到特定项目文件夹,用docker build 编译后,上传到docker registry。
这个思路是通过docker实现的,所以链接整个流程的关键是Dockerfile文件,在使用visual studio新建项目时,勾选为项目配置docker,即可自动生成Dockerfile。具体dockerfile文件的编写可以参考docker官网:https://docs.docker.com/get-started/part2/
PS:这里需要注意一下,自动生成的dockerfile文件的默认路径可能会有偏差(这里需要保证JenkinsTest.csproj 与 它的WORKDIR 能对应上)
在jenkins中点击新建任务,给项目命名,这里命名test,后保存即可,先不用进行其他配置操作。(确认已经安装Gogs-Webhook Plugin)
这个git的操作就不展开描述了,相信大家都懂,不懂的可以学习廖雪峰老师的git教程
上传完后进入Gogs的仓库设置,选择管理web钩子,添加web钩子,选择gogs-webhook
gogs-webhook设置的注意事项:(图三)
完成以上步奏后,就可以实现任务推送后触发jenkins任务了,接下来就开始配置jenkins
因为我们的思路里有要远程其他服务器的步奏,所以我们先要给jenkins添加一个链接凭证
2. 我们远程登录只需要用户名和密码就行,所以类型选择username with password,在用户名和密码里输入你要登录的服务器名和密码,id不用填,描述可以描述你的服务器名
2.在我们第三步设置的gogs密码,现在该用上了,在gogs webhook的设置中,把Use Gogs secret勾上,然后把密码输进去,为了防止恶意触发项目构建
3.在构建触发器中选择,when a change is pushed to gogs
4.添加一个本地构建命令,实现的流程是:git pull(git拉取) -> docker build(docker根据dockerfile构建) -> docker tag(修改为指定的docker私有库) -> docker push(上传到私有库)
5.添加一个远程命令,选择你刚刚添加的ssh链接,实现的流程是:docker pull -> docker rm -> doceker run,请确保你远程的服务器信任了私有库"insecure-registries":["[Registry IP]:5000"] (参考上个步奏)
使用Jenkins与Docker持续集成与发布NetCore项目(转)
原文:https://www.cnblogs.com/IT-Evan/p/12657888.html