Mac上搭建jenkins+docker+maven+git自动部署

前言

公司之前的项目发布是通过jenkins自动发布的,只要在jenkins上选择项目,点击构建项目,项目就自动部署好了。对于开发人员来说这非常方便,只要修改好源码,提交到github中后,登录jenkins的Web界面,选择项目点击构建就行了。几经摸索后,我终于在自己的Mac上搭建成功了,期间碰到的问题大多是关于docker方面的,其中有个问题还没有从根本上解决,只是通过变通的方式使得部署成功,在后文中将会提到。

前置条件

  1. 已经安装好jenkins
  2. 已经安装好git
  3. 已经安装好docker,我这里使用的是docker for mac版本
  4. 有一个测试的项目,我这里使用的是springboot搭建的一个项目。

搭建步骤

jenkins上新建项目

登录jenkins后点击新建项目

输入项目名称,选择构建项目类型,我这里选择了构建一个自由风格的软件项目

源码管理选择git,输入git仓库地址,选择分支

构建选择shell构建,输入要执行的脚本

完成上述步骤后点击保存

为项目添加Dockerfile文件

1
2
3
4
FROM index.alauda.cn/library/java:7u91
COPY ./target/gx.jar /gx.jar
ENV TZ Asia/Shanghai
ENTRYPOINT ["java", "-jar", "-Djava.security.egd=file:/dev/./urandom", "/gx.jar","--logging.path=/var/log"]

添加后的目录结构如下

自动部署

返回到主页面,点击构建按钮

进入控制台可以查看构建情况

控制台最后,看到finished:success则表示构建成功

遇到的问题

  1. docker registry不能push成功

解决办法: advance中添加docker私服地址

  1. docker远程管理失败

解决办法:由于我的docker版本是docker for mac,我查了很多资料,基本都是linux的docker版本远程管理解决方案,没有mac版本的方案。所以就退而求其次,把-H 192.168.1.207给删除了,相当于访问服务器本机的资源,如果有多台服务器,那就必须通过-H ip来管理了。

后记

这次的搭建中新学到了不少的东西,比如docker的私服,docker的远程管理,dockerfile文件等等,其中mac上的远程管理我暂时还未能实现。我打算去centos服务器中再去从头搭建一次jenkins+docker+git+maven自动部署,巩固所学知识的同时看看mac和centos上搭建的区别,并在centos上实现docker的远程管理。