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

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

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

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

1.3 移动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

4.4 打开浏览器,输入主机IP地址加端口号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钩子

密钥文本根据你之前在jenkins中的任务里设置的写,如果没有设置请置空

6.5 测试推送

点击“测试推送”按钮,检查是否可以推送成功

至此,以后只要一推送代码到这个仓库,就可以实现自动完成部署任务

你可能感兴趣的:(gogs可以自动化部署吗)