Jenkins+Harbor+gogs+docker+springboot实现devOps

流程图

Jenkins+Harbor+gogs+docker+springboot实现devOps_第1张图片

准备工作

  • 需要在服务器上搭建git仓库gogs
  • 需要在服务器上搭建docker镜像仓库Harbor
  • 需要在服务器上搭建构建平台Jenkins,并配置git仓库,maven和SSH

执行的流程

  1. 手动push代码到gogs
  2. 手动在gogs上打tag,触发Jenkins执行任务
  3. Jenkins自动从gogs上pull代码
  4. Jenkins自动用maven对代码打包
  5. 项目打包完之后会push镜像到仓库(这个是在springboot项目中配置的)
  6. Jenkins通过SSH远程执行脚步,pull镜像,运行容器

注意事项

maven需要使用阿里的镜像,不然非常慢,办法是修改settings.xml

具体过程

gogs

pull镜像并运行
docker pull gogs/gogs


docker run -p 10022:22 -p 10080:3000 --name=gogs \
-v /mydata/gogs:/data  \
-d gogs/gogs

登录
http://119.29.177.27:10080/
初始化配置

Jenkins+Harbor+gogs+docker+springboot实现devOps_第2张图片

新建仓库->push代码

Jenkins+Harbor+gogs+docker+springboot实现devOps_第3张图片

webhook配置

Jenkins+Harbor+gogs+docker+springboot实现devOps_第4张图片
Jenkins+Harbor+gogs+docker+springboot实现devOps_第5张图片

Jenkins

安装和登录
安装
docker pull jenkins

docker run -p 8080:8080 -p 50000:5000 --name jenkins \
-u root \
-v /mydata/jenkins_home:/var/jenkins_home \
-d jenkins

docker logs jenkins 获取密码

登录

http://119.29.177.27:8080/
Jenkins+Harbor+gogs+docker+springboot实现devOps_第6张图片
Jenkins+Harbor+gogs+docker+springboot实现devOps_第7张图片
Jenkins+Harbor+gogs+docker+springboot实现devOps_第8张图片
Jenkins+Harbor+gogs+docker+springboot实现devOps_第9张图片

前期配置
插件安装
  • gogs
    Jenkins+Harbor+gogs+docker+springboot实现devOps_第10张图片
    在这里插入图片描述
系统配置
  • 连接服务器的sh
    Jenkins+Harbor+gogs+docker+springboot实现devOps_第11张图片
全局工具配置
  • 配置mavne: 这个maven是我手动上传上去的

Jenkins+Harbor+gogs+docker+springboot实现devOps_第12张图片

全局安全配置
  • 这里要去掉勾选
    在这里插入图片描述
创建Jenkins任务
配置git

Jenkins+Harbor+gogs+docker+springboot实现devOps_第13张图片

选择maven

Jenkins+Harbor+gogs+docker+springboot实现devOps_第14张图片
Jenkins+Harbor+gogs+docker+springboot实现devOps_第15张图片

选择要执行的脚本
  • 准备脚本
#!/usr/bin/env bash
app_name='demo'
docker stop ${app_name}
echo '----stop container----'
docker rm ${app_name}
echo '----rm container----'
docker run -p 8088:8088 --name ${app_name} \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/${app_name}/logs:/var/logs \
-d ${app_name}:1.0-SNAPSHOT
echo '----start container----'
  • 把脚本上传到服务器的/mydata/sh/目录下,并执行
chmod -x /mydata/sh/demo.sh
  • 执行shell:

Jenkins+Harbor+gogs+docker+springboot实现devOps_第16张图片
Jenkins+Harbor+gogs+docker+springboot实现devOps_第17张图片Jenkins+Harbor+gogs+docker+springboot实现devOps_第18张图片

执行Jenkins任务
执行流程
  • 从git pull代码>maven clean package>docker build images>docker run

Jenkins+Harbor+gogs+docker+springboot实现devOps_第19张图片
Jenkins+Harbor+gogs+docker+springboot实现devOps_第20张图片
Jenkins+Harbor+gogs+docker+springboot实现devOps_第21张图片

Harbor

注意
一个是docker login
一个是修改springboot项目中pom.xml中的docker配置,要配置推送镜像到仓库
参考
http://www.macrozheng.com/#/reference/harbor_start

你可能感兴趣的:(liunx,linux,docker,devops,jenkins)