[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程

文章目录

  • 1. 介绍
    • 1.1 需求
    • 1.2 构建环境
    • 1.3 使用docker 安装
      • Linux 端操作
    • 1.4 使用war 安装
  • 2.开始Jenkins(以docker安装介绍)
    • 2.2 浏览器访问
      • 2.2.1 初始密码
      • 2.2.2 初始化插件
      • 2.2.3 设置
  • 3. 创建任务
    • 3.1 创建任务
    • 3.2 关联git
    • 3.3 触发构建
    • 3.4 后面添加构建步骤

在大数据时代,各种微服务横飞,实在不能忍受手动部署了,本文使用Jenkins + Docker +gitee 持续集成 环境到线上环境
本来打算使用GitHub的 , 但是网速慢+支持国产,选择gitee

1. 介绍

1.1 需求

首先,我们需要完成的效果是:
1.在开发提交代码到代码版本控制服务器(gitee)后,可以选择各种触发条件,触发构建
2.触发构建后,Jenkins 拉取代码到Jenkins 服务器 打包编译
3.将编译好的镜像推送到镜像服务器/公司私服
4.推送完成后运行镜像文件替换上一个版本镜像

可以看到,我们构建好持续部署环境后仅需要提交代码,就可以摸鱼了

1.2 构建环境

我们这里服务器有限,所以很多东西都放在一台服务器上面进行,为了方便,我们直接使用docker 构建Jenkins 环境

如果实际使用还是推荐直接部署war , 因为docker 中的环境隔离问题,可能导致很多不方便的地方,

1.3 使用docker 安装

Linux 端操作

提前创建文件夹

mkdir -p /home/docker-data/jenkins

授权,不然会出现 Wrong volume permissions

chown -R 1000 /home/docker-data/jenkins

启动Jenkins

docker run -d --name jenkins -p 8888:8080 -p 50000:50000 --privileged=true -v /home/docker-data/jenkins:/var/jenkins_home docker.io/jenkins/jenkins

  • -p 暴露端口
  • -v 添加文件映射,防止数据丢失

查看日志打印 docker logs -f jenkins 可以很明显的看到 successful , 同时上面有打印初始密码4cad9efec5a745af90587379c5d3275c

[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第1张图片

1.4 使用war 安装

  1. 找到官网地址 https://www.jenkins.io/download/

  2. 选择lts 长期支持版本,复制链接地址
    https://get.jenkins.io/war-stable/2.332.2/jenkins.war
    [接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第2张图片

  3. 再linux 下载 wget 下载或者下载好上传上去

[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第3张图片

  1. 下载jdk1.8以上版本并安装,安装后配置jdk的环境变量。(这里不再累述具体步骤)

  2. 在dos命令行运行命令解压war包:java -jar jenkins.war (默认情况下端口是8080,如果要使用其他端口启动,可以通过命令行”java –jar Jenkins.war --httpPort=80”的方式修改)

2.开始Jenkins(以docker安装介绍)

2.2 浏览器访问

然后,访问ip:端口 , 如我这里的 http://47.102.129.69:8888/,正常情况下是:
[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第4张图片

2.2.1 初始密码

那么,在Linux 端查看密码(就是上面提到的那个)4cad9efec5a745af90587379c5d3275c ,

如果没找到也可以在他这个路径下 /var/jenkins_home/secrets/initialAdminPassword
我们这里映射了外部路径,所以在我们的主机上查看 /home/docker-data/jenkins/secrets/initialAdminPassword 文件也可以找到密码

因为第一次使用所以会有点慢,耐心等待

2.2.2 初始化插件

Jenkins 都是基于插件的,所以耦合度低同时适配各种环境的持续集成,这里我们直接安装推荐插件

如果十分熟悉也可以自定义

[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第5张图片

点了之后就开始下载了,慢慢等哦~
[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第6张图片

下载完成之后应该是这样的 , 让你创建一个用户,创建之后记住密码,初始密码无法再次使用了
[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第7张图片

如果创建完用户密码又忘记了,可以在配置文件关闭权限控制然后,进系统修改

然后保存完成
[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第8张图片
后面设置一下这边

[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第9张图片

2.2.3 设置

如果不熟悉英文可以在插件管理里面下载 Localization: Chinese (Simplified) 然后重启就ok了,如果是默认的就已经安装好了这个插件,直接重启一下Jenkins就好了

有些插件直接安装了就可以用,有些则需要重启才能生效

如果安装速度慢可以换成国内地址
cd {你的Jenkins工作目录}/updates #进入更新配置位置
sed -i ‘s#http://updates.jenkins-ci.org/download#https://mirrors.tuna.tsinghua.edu.cn/jenkins#g’ default.json && sed -i ‘s#http://www.google.com#https://www.baidu.com#g’ default.json

然后

  1. 安装一下maven 以及maven 打包编译插件
    [接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第10张图片

  2. 系统管理 系统配置

  3. 安装docker Docker build step 编排插件
    [接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第11张图片

危险警告 这里不能随便开放,如果是在公网上面,公网开发那就意味着别人随便练你的docker 加入镜像运行 东西,分分钟变成肉鸡,含泪警告!!!!

然后使用终端登录到服务器,修改/usr/lib/systemd/system/docker.service 为:
ExecStart=/usr/bin/dockerd-current -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock \

4243为端口号,只要不跟系统冲突,任意端口都行。修改完后执行以下两条命令使配置生效:

systemctl daemon-reload ; service docker restart
ipconfig
防火墙一定要记得开放4243端口。

!

参考下图:
[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第12张图片

最后在,系统管理->系统配置->拉到最下 cloud -> 新增
[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第13张图片

同时在,系统管理->系统配置
中 新增 刚才的路径

在这里插入图片描述

  1. 安装 gitee 插件
    [接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第14张图片

  2. 安装ssh 连接插件

这个可以让你打包好的程序推到目标服务器上,其实这个我们在本机不使用也可以
[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第15张图片

##2.3.1 安装工具

在 系统管理->全局工具配置

  1. 安装maven
    可以选择自动下载 ,这个会在需要用到的时候自己安装,但是有点慢
    [接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第16张图片

也可以选择 进入 容器 安装 , 从apache 下载有点慢,所以我们选择这里的自己安装

exec -it jenkins2 /bin/bash
cd /var/jenkins_home/
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
tar -zxvf apache-maven-3.6.3-bin.tar.gz

然后返回Jenkins 管理的把这个路径配置上去
[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第17张图片

安装好了之后 ,设置下maven 的配置文件,把镜像源换下,和本地仓库换下,不然默认是工作空间 每次jar 都要下载特别慢

[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第18张图片

我这里创建的路径是 /var/jenkins_home/m2/repository ,因为我们之前是把这个路径挂载在外面的,所以可以直接在外面操作,创建文件夹

注意 : 这里要在外面给 仓库授权一下,不然会有错误
chmod -R o+r+w m2


    
<mirror>
<id>alimavenid>
<name>aliyun mavenname>
<url>http://maven.aliyun.com/nexus/content/repositories/central/url>
<mirrorOf>centralmirrorOf>
mirror>
  mirrors>


3. 创建任务

3.1 创建任务

一般选址第一个就可以

[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第19张图片

3.2 关联git

[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第20张图片

3.3 触发构建

这边有几种情况构建,一般定时构建,或者脚本构建,或者hook 构建 ,首推hook 构建,可以达到提交代码到仓库根据条件自动构建发布到线上,也可以设定哪些分支,什么条件,更灵活

这里没有gitee hook 需要等gitee 插件下载完才能出现

[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第21张图片

在这个页面下面点击生成,
你需要把刚才的那个路径配置到你的项目中并且在Jenkins 生成密钥填进去
[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第22张图片

[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第23张图片

3.4 后面添加构建步骤

  1. 首先用maven 构建出jar 调试可以 用 clean install -X

clean install
[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第24张图片

  1. 构建镜像

这里默认的就是当前工作空间,给定镜像名
[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第25张图片

  1. 移除之前的容器

[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第26张图片

  1. 启动现在的容器

本来这一步也可以使用 Execute Docker command 执行,但是挂载目录一无法挂载,所以选择直接shell

同时 shell 是在容器里,所以我们要在宿主机上,使用登录ssh 再执行

[接私活必备] Jenkins+Docker+gitee 持续部署spring boot 应用教程_第27张图片

你可能感兴趣的:(环境配置,运维,docker,容器,jenkins)