.net core通过jenkins + gogs + docker实现自动化部署

一、打开项目,添加一个Dockerfile文件

1.1 右击启动项目 -> 添加 -> Docker支持

添加dockerfile

1.2 打开多出来的 Dockerfile文件,可自己决定要不要修改什么

dockerfile

1.3 移动dockerfile文件到解决方案同级的目录下

移动dockerfile

二、安装docker

因为每一位阅读者的环境都可能会不太一样(服务器系统),所以关于这个的内容,请自行按照相应的环境,进行查阅资料安装,本文不做赘述。

三、安装gogs

本来确实是可以不需要使用gogs,直接使用gitee或github等等仓库即可,但是如果有人需要搭建私有代码服务器的,则可继续阅读该内容。
点击查阅这篇文章进行安装

四、安装jenkins(宿主机中安装)

jenkins在本地安装或者是用容器托管,本身在使用上都是差不多的,但是容器托管会有限制,推荐在本地安装
4.1 安装
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
yum install jenkins
4.2 设置文件夹权限(以下命令假设你是root用户)
chown -R jenkins:jenkins /var/lib/jenkins
chown -R jenkins:jenkins /var/cache/jenkins
chown -R jenkins:jenkins /var/log/jenkins
systemctl restart jenkins
4.3 查看jenkins的运行状态是否正常
systemctl status jenkins

jenkins运行状态示例

4.4 打开浏览器,输入主机IP地址加端口号8080,进入jenkins安装界面

例如: http://192.168.32.26:8080/

jenkins界面

4.5 执行命令查看密码
cat /var/lib/jenkins/secrets/initialAdminPassword

查看密码
复制下来后返回jenkins的界面,粘贴进去,然后开始下一步

4.6 点击“安装推荐的插件”

4.7 安装完之后,会显示创建用户的页面,在创建成功一个用户之后进入jenkins主界面
4.8 解决jenkins没有权限操作docker
这个问题在后面使用jenkins创建任务,执行docker,命令的时候会出现,请务必耐心完成此一系列步骤:
点击查看步骤

五、创建一个jenkins任务

5.1 填写名称,选择“构建一个自由风格的软件项目”,然后确定

5.2 源码管理一栏选择git(如果是使用svn的小伙伴,请先到插件管理中下载svn插件,然后此界面中就会有svn的选择项)

把第一步中设置的项目代码提交到远程仓库,然后把地址填写到下面的“Repository url”,可以修改一下分支,这里默认是master(这个表示执行构建任务的时候,会拉指定分支的代码过来构建)

5.3 设置构建时执行的docker命令
点击构建部分的下拉列表,选择“执行shell”

填写以下内容(注意这是第一次构建的时候用的)
#创建docker镜像
docker build -t 你的镜像名 .
#创建docker容器
docker run --name 你的容器名 -p 9527:80 -d 你的镜像名
后面在这一次构建成功之后,应该为如下脚本(把旧的容器和镜像都删掉再build)
#停止容器
docker stop 你的容器名
#删除容器
docker rm 你的容器名
#删除镜像
docker rmi 你的镜像名
#创建docker镜像
docker build -t 你的镜像名 .
#创建docker容器
docker run --name 你的容器名 -p 9527:80 -d 你的镜像名
点击保存后退出
5.4 手动点击“立即构建”按钮,开始构建


可以点击“控制台输出”,实时查看构建时的情况
以上是实现 jenkins + docker实现的可视化部署,接下来是配合 gogs 实现自动化

六、使用gogs配合jenkins实现自动化

6.1 jenkins中安装gogs插件
系统管理 -> 插件管理

6.2 点击tab中的可选插件,搜索框中输入 gogs,勾选搜索出来的gogs插件记录,然后点击直接安装


我已经安装过了,所以没有任何插件匹配项显示

6.3 设置gogs触发事件,让jenkins执行构建的密码(可做可不做)

勾选并输入密码

点击保存后退出
6.4 设置gogs仓库
点击仓库设置

点击管理web钩子


地址栏填写格式:http://xxx.xxx.xxx.xxx:8080/gogs-webhook/?job=jenkins中的任务名

密钥文本根据你之前在jenkins中的任务里设置的写,如果没有设置请置空
6.5 测试推送
点击“测试推送”按钮,检查是否可以推送成功

至此,以后只要一推送代码到这个仓库,就可以实现自动完成部署任务
原文地址:https://www.cnblogs.com/shapman/p/14054522.html