环境说明

1c 2g 6mbubuntu 20.14

Docker安装

卸载旧的 Docker

更新 apt 包索引并安装包以允许 apt 通过 HTTPS 使用存储库

添加 Docker 官方的 GPG 密钥

安装 Docker

通过运行 hello-world 验证 Docker 是否已正确安装。输出 Hello from Docker! 表示安装成功

不同的系统安装方式可以查阅 docker 官方安装说明

Gogs安装

Gogs 是一款用 Go 语言开发的轻量级极易搭建的自助 Git 服务。 选择 Gogs 主要因为它相对于 Gitlab 动则几个G的内用暂用率来说轻太多了。Gogs 会大大减低系统消耗,跑起来也就占用100mb内存。我的 Gogs 是跑在群晖上面的,效果都是一样,都是在 Docker 中托管

拉取 Gogs 镜像

创建 Gogs 文件挂载路径

docker ps
http://xxxxxxxx:6080

数据库类型建议选择 linux 自带的 SQLite3 ,支撑十几个人左右的团队使用足够了。域名填写 Gogs 所在服务器的域名或者 ip 地址。http 端口号和容器内部端口一致,应用 URL 填写访问 Gogs 的域名端口或 ip 端口,点击安装后注册一个新用户登陆即可

Gogs安装完成后新建一个 Demo 仓库稍后使用

Gogs 官方文档

Docker中托管.NetCore服务

新建一个 WebApi 项目

项目中增加一个 DockerFile 文件并且简单配置

发布Api服务,如果发布文件中没有 DockerFile 文件需要手动修改项目文件,发布成功后将发布文件 copy 到服务器指定的文件夹中

docker build -t {REPOSITORY}:{TAG} .docker build -t demo:v1 .


docker images

docker run --name demoapi -dp 5009:80/tcp demo:v1
docker psdocker ps -a

用 postman 测试一下是否部署成功了

列举一些docker常用命令

docker restart {容器id}docker start {容器id}docker attach {容器id}docker attach {容器id} --sig-proxy=falsedocker exec -it {容器id} /bin/bashdocker logs {容器id} -f docker rm -f {容器id}docker rmi {REPOSITORY:TAG}docker image prune

到这里服务已经在 Docker 完成了托管,但是每次发布都需要 build 新的镜像,然后停止老的容器,在创建一个新的容器,无形中增加了工作量。Jenkins 可以替我们完成这些工作

Jenkins安装

Jenkins 是依赖 java 的,所以需要安装 java 的 sdk,这里选择 java8

安装 LTS 版本的 Jenkins

systemctl status jenkins

http://xxxx:8080cat /var/lib/jenkins/secrets/initialAdminPassword

输入密码后进入初始化页面,选择安装推荐插件

插件安装进度,需要一些些时间

gogs

http://xxxx:8080/restartservice jenkins restart

vim /etc/sysconfig/jenkinsvim /etc/default/jenkinsJENKINS_USERJENKINS_USER="root"

jenkins 常用操作

service jenkins startservice jenkins restarthttp://xxxx:8080/restartservice jenkins stophttp://xxxx:8080/exithttp://xxxx:8080/reload

使用Jenkins自动化

因为需要在服务器上 build 项目,所以需要安装 .NetCore 环境,可以查阅 微软官方文档 自行安装

把新建的项目推送到 Gogs 仓库中后点击仓库高级设置

选择 Web 钩子,添加新 Gogs 的 Web 钩子

配置 Web 钩子,推送地址前面是 Jenkins 的访问链接,后面 job 名字可以自己定义,选择只有在 push 的时候触发钩子,也可以自己选定事件

添加后重新点击管理 Web 钩子,选择刚才新建的钩子,点击测试推送来验证是否正常,抛出的异常如果是 job 未定义说明钩子是正常的,如果是其他的异常可以查看推送地址是否正确,以及 Jenkins 上的 Gogs 插件是否正确安装

回到 Jenkins 页面,新建一个任务,任务名就是之前 Gogs 里面的 job 名字,选择构建自由风格的软件项目

添加仓库配置,Repository URL 是你的仓库地址,点击添加你的仓库凭据信息,最后指定操作的分支

构建选择执行shell脚本,脚本也可以放在服务器上这里调用就行,为了方便就直接写在这里


保存后点击立即构建验证一下,如果构建失败可以在控制台输出中查看详细构建过程和错误信息

回到 Gogs 的管理 Web 钩子页面重新推送,成功后 Jenkins 会自动构建发布,之后只要 Push 到 Master 分支就会自动发布


总结

简单记录了自己折腾的全过程,Jenkins 和 Docker 还有很多功能,要在使用过程中慢慢了解。

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。