前言

这是一个用Docker部署Jenkins,再通过Jenkins+Github完成自动部署,将SpringBoot项目打包成本地Docker镜像再发布成容器的记录。
思路是Docker部署Jenkins,与Github进行关联,最后Jenkins自动拉取并编译完代码后通过SSH登录宿主服务器,再发布镜像

1.Docker部署Jenkins

  1. yum install docker 安装Docker
  2. service docker start 启动docker
  3. docker search jenkins 搜索公共镜像库的jenkins镜像
  4. 正常使用第一个官方镜像,因为是自己的项目所以使用了自带blueocean这个更好看的插件的镜像
    image.png
  5. docker run -d -p 8080:8080 -v /root/jenkins_home:/var/jenkins_home --name jenkins_demo jenkinsci/blueocean
    -d 后台运行
    -p 绑定宿主端口:容器端口
    -v 绑定宿主文件夹:容器关键文件夹
    --name 重命名容器名称

2.Jenkins 部署

  1. 第一次进入主页需要密码,docker logs jenkins_demo,可以看到Jenkins的日志,日志中包含了密码。
  2. 除了推荐插件安装外,为了之后的Maven项目部署,需要额外下载插件Maven Integration plugin;以及为了部署后去服务器上发布docker镜像,额外下载插件SSH plugin。
  3. 下了Maven插件后才有如下图所示的构建一个Maven项目。
    image.png
  4. 首先配置源码管理,认证的时候如果是私有项目才填认证信息否则可以为空
    image.png
  5. 然后构建触发器中hook打钩
    image.png
  6. Maven项目中需要重新打jar包
    image.png
    7.最后登录到主机上把打好的jar包复制到备份目录中最后通过make脚本构建镜像
    image.png

项目配置完毕

  1. 系统配置中,这个SSH需要提前配置 上面项目才能使用远程SSH凭证登录到主机上完成操作
    image.png
  2. Github配置
    image.png
    这个地方凭证配置的是github的token
    image.png
    token从Github中获取,位置在个人的Setiing中的Developer setting
    image.png
    并在服务器的高级中,选择指定另一个Hook
    image.png
    用于Github上
    image.png
  3. 在全局工具配置里 因为Jenkins是部署到Docker容器内部,所以Maven,JDK,Git都使用自动安装

系统全局配置完毕

3.打包项目镜像并发布成容器

  1. 最开始没有加入rancher的时候是使用命令行,本地打包后发布
    image.png
  2. 加入rancher后直接使用rancher发布,现在在考虑的是,以前容器每次构建是根据代码Push后自动更新容器,现在使用rancher正在考虑如何解决自动发布的问题

春茶
5 声望0 粉丝