Jenkins+Docker+Gitee+SpringBoot自动化部署

目录
  • 1,搭建Jenkins平台
  • 2,Jenkins平台配置
  • 3,创建SpringBoot应用
  • 4,Gitee配置
  • 5,新建自动化部署任务
  • 6,打包测试

当我们使用传统的开发方式开发后台系统时,每写完一个功能点就需要重新运行一下项目,然后进行测试,如果是项目比较小还可以,但是如果项目比较大的话,由于涉及的人员比较多,这种开发方式就比较麻烦。基于此,我们就需要使用Jenkins配合Gitee搭建一个自动化部署平台,并将代码托管到服务器上,这样减轻了本地的电脑压力,也解放了部署的流程。

1, 搭建Jenkins平台

首先,我们需要搭建一下Jenkins自动化构建平台。首先,我们需要安装Docker,然后在Docker中安装Jenkins,安装的命令如下:

# 安装yum-utils工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 配置阿里云的Docker Yum源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装Docker
sudo yum install docker-ce docker-ce-cli containerd.io
# 启动Docker
sudo systemctl start docker
# 配置开机自启动
sudo systemctl enable docker

通过以上指令即可成功安装Docker并启动,接下来我们通过Docker运行Jenkins。

docker run \
  -d \
  --rm \
  -u root \
  -p 8080:8080 \
  -v /home/jenkins-data:/var/jenkins_home \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /opt/develop_resource/apache-maven-3.6.3:/usr/local/maven \
  -v "$HOME":/home \
  jenkinsci/blueocean

执行上述指令Docker会自动拉取Jenkins的镜像并启动,因为我们要部署的是SpringBoot,所以需要准备JDK和Maven环境,不过该Jenkins镜像自带了JDK环境,只需准备一下Maven即可,首先,下载Maven压缩包,命令如下:

wget http://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

解压之后千万要注意Maven所在的目录,比如:

/opt/develop_resource/apache-maven-3.6.3

将它挂载到容器的目录里,-v /opt/develop_resource/apache-maven-3.6.3:/usr/local/maven这一条指令中的Maven目录千万记得换成自己的。现在,我们可以运行刚才的指令启动Jenkins了,通过docker ps指令可以查看容器是否启动。

[root@10 /]# docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS         PORTS                                                  NAMES
dfa1b8b2c7a3   jenkinsci/blueocean   "/sbin/tini -- /usr/…"   15 seconds ago   Up 9 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 50000/tcp   condescending_meitner

接下来,我们使用服务器的ip加端口8080的方式访问Jenkins。

管理员密码可以在Jenkins的启动日志中查看,使用docker logs dfa1b8b2c7a3查看日志:

密码就是红框中的字符串,注意红框下的一段提示:

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

意思是你可以在/var/jenkins_home/secrets/initialAdminPassword这个文件中查看到管理员密码,不过这是Jenkins容器内的目录,我们在启动Jenkins的就挂载了Jenkins的关键目录/var/jenkins_home,宿主机目录为/home/jenkins-data,所以可以使用如下指令查看管理员密码。

cat /home/jenkins-data/secrets/initialAdminPassword

得到密码后输入到Jenkins页面解锁Jenkins,然后点击安装推荐的插件。

接下来,直接点击【下一步】。

到这一步,Jenkins平台就可以正式使用了。

2, Jenkins平台配置

接下来,就是对Jenkins平台的配置,首先配置Maven。

按步骤点击,即可进入系统配置。首先,在全局属性中进行配置。

还记得我们在运行Jenkins容器时挂载的Maven目录吗?挂载到Jenkins容器中的目录就是/usr/local/maven,如果实在搞不懂的你就保持和我的配置一样即可。

以同样的方式,再新增一个配置:

PATH+EXTRA的作用是让原来PATH变量中的环境不丢失,最后点击保存。Maven配置完成后,需要配置Gitee。

点击可选插件,选中Gitee,然后点击Install without restart进行安装,等待安装完成即可,Gitee的相关配置我们放到后面讲。

3,创建SpringBoot应用

首先,我们创建一个简单的SpringBoot应用进行测试,控制器代码如下。

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello(){
        return "Hello World!";
    }
}

然后在配置文件application.yml中添加:

server:
  port: 8000

并在main下新建docker文件夹,在docker文件夹下新建Dockefile文件,内容如下。

# 指定是基于哪个基础镜像
FROM java:8

# 作者信息
MAINTAINER wwj

# 挂载点声明
VOLUME /tmp

# 将本地的一个文件或目录,拷贝到容器的文件或目录里
ADD /target/demo-0.0.1-SNAPSHOT.jar springboot.jar

#shell脚本
RUN bash -c 'touch /springboot.jar'

# 将容器的8000端口暴露,给外部访问。
EXPOSE 8000

# 当容器运行起来时执行使用运行jar的指令
ENTRYPOINT ["java", "-jar", "springboot.jar"]

需要注意的是ADD指令的编写,当SpringBoot应用打包完成后,其jar包会被放在target目录下。

所以需要指定该文件的位置,使用ADD指令将其放入待构建的容器中,接着在Gitee中新建一个仓库,并将代码推送到仓库中。

仓库名随便你叫什么,然后将刚才的应用推送上去即可。

4,Gitee配置

推送完成后,回到Jenkins管理界面,我们来完成Gitee的配置,打开系统配置。

找到Gitee配置,填入对应的信息:

点击添加按钮添加一个Jenkins凭证。

选择Gitee API 令牌:

私人令牌的获取地址为:https://gitee.com/profile/personal_access_tokens

5, 新建自动化部署任务

配置完成,接下来新建一个任务,点击新建Item。

随便输入一个任务名称,并选择【Freestyle project】。

在源码管理处勾选Git,并填入项目地址,然后在构建触发器位置勾选触发打包的时机。

在构建触发器最底部位置点击生成Gitee WebHook密码。

然后打开Gitee项目中的WebHooks,添加webHook。

此处的URL需要填入一个公网IP,所以如果你是用的虚拟机,就需要用内网穿透工具映射一下。

至于URL应该填什么,我们需要修改一下。

填写完成后点击添加,Gitee便会发送一个Post请求到Jenkins,如果请求结果如下所示,则配置成功了。

重新回到Jenkins管理界面,继续勾选构建触发器下的轮询SCM,输入轮询频率。

最后在构建位置下增加构建步骤,选择执行shell。

shell脚本代码如下。

#!/bin/bash -il
docker rm -f app_docker
sleep 1
docker rmi -f app_docker:1.0
sleep 1
mvn clean install -Dmaven.test.skip=true
sleep 1
docker build -t app_docker:1.0 -f ./src/main/docker/Dockerfile .
sleep 1
docker run -d -p 8000:8000 --name app_docker app_docker:1.0

该脚本表示删除正在运行的app_docker容器,并删除app_docker:1.0镜像,然后使用mvn命令打包从Gitee拉取来的项目代码,接着使用项目中的Dockerfile文件构建出一个镜像,名称为app_docker:1.0,最后运行该镜像。

6,打包测试

最后点击保存,部署任务就创建完成了,我们来测试一下有没有问题。

点击立即构建,Jenkins会立马进行一次构建,查看控制台输出。

最后,我们打开默认的地址即可。

到此这篇关于Jenkins+Docker+Gitee+SpringBoot自动化部署的文章就介绍到这了,更多相关Jenkins Docker+Gitee+SpringBoot自动化部署内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • docker+gitlab+jenkins从零搭建自动化部署

    目录 前言: 一.安装Docker 二.Docker 安装Jenkins 1. 搜索仓库中的jenkins镜像 2. 通过拉取jenkins镜像到本地images中 3. 启动jenkins容器 三.登陆Jenkins的初始化操作 四.全局工具配置(配置环境) 五.安装Maven插件 点击系统管理–插件管理 六.新建任务,完成自动化部署 前言: 通过几天的学习和自己的理解,整理了下Docker+Jenkins的自动部署教程,如有不足,还请多多指点,谢谢! Docker的优点: Docker 让开

  • 从零搭建docker+jenkins+node.js自动化部署环境的方法

    本次案例基于CentOS 7系统 适合有一定docker使用经验的人阅读 适合有一定linux命令使用经验的人阅读 1.docker部分 1.1.docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口 1.2.docker架构 简单的说,docker就是一个轻量级的linux系统.Docker 容器通过 Docker 镜像来创建.

  • Docker搭建Jenkins并自动化打包部署项目的步骤

    Jenkins的安装及配置 Docker环境下的安装 下载Jenkins的Docker镜像: docker pull jenkins/jenkins:lts 在Docker容器中运行Jenkins: docker run -p 8080:8080 -p 50000:5000 --name jenkins \ -u root \ -v /mydata/jenkins_home:/var/jenkins_home \ -d jenkins/jenkins:lts 直接通过虚拟机ip+端口访问jks,

  • 基于Docker、Nginx和Jenkins实现前端自动化部署

    目录 前期准备 部署目标 Dcoker环境的搭建 连接云服务器 安装Docker环境 Docker安装Docker Compose Docker安装Nginx和Jenkins服务 安装Nginx和Jenkins Nginx和Jenkins目录编写 docker-compose.yml文件配置 nginx.conf文件配置 安装Jenkins插件 关联Jenkins和GitLab 生成密钥 新建项目 源码管理 构建触发器 结束语 前期准备 基于CentOS 7系统云服务器一台. 基于Vue-CLI

  • 基于Docker+Jenkins实现自动化部署的方法

    使用码云搭建Git代码存储仓库 https://gitee.com/login 使用码云创建私有私有git仓库 将本地springboot项目上传到git仓库中 基于Docker安装Jenkins环境 1.使用docker 安装jenkins docker run -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean 2.访问jenkins地址 8080 注意:第一次启动的时候正在加载j

  • Jenkins+Docker+Gitee+SpringBoot自动化部署

    目录 1,搭建Jenkins平台 2,Jenkins平台配置 3,创建SpringBoot应用 4,Gitee配置 5,新建自动化部署任务 6,打包测试 当我们使用传统的开发方式开发后台系统时,每写完一个功能点就需要重新运行一下项目,然后进行测试,如果是项目比较小还可以,但是如果项目比较大的话,由于涉及的人员比较多,这种开发方式就比较麻烦.基于此,我们就需要使用Jenkins配合Gitee搭建一个自动化部署平台,并将代码托管到服务器上,这样减轻了本地的电脑压力,也解放了部署的流程. 1, 搭建J

  • Asp.net Core Jenkins Docker实现一键化部署的实现

    写在前面 在前段时间尝试过用Jenkins来进行asp.net core 程序在IIS上面的自动部署.大概的流程是Jenkins从git上获取代码 最开始Jenkins是放在Ubuntu的Docker中,但是由于Powershell执行的原因,就把Jenkins搬到了windows上.因为我们网站的部署需要停掉IIS站点,所以需要Powershell来远程操作服务器(上传文件,停止站点,启动站点),也很顺利的利用WinRM+Powershell脚本实现了上面的功能,但是最后在实际使用中发现,脚本

  • Java利用jenkins做项目的自动化部署

    最近领导要求上海本地的项目需要使用进jenkins实现自动化部署,以便可以直接将项目移交给运维的同学,减轻开发的工作量.记录下这次爬坑的过程. 一.前言 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. 上面是我从百科上down下来的,老实说没看懂,这是个什么玩意啊?其实以我现在的理解和应用,最多的便是部署了,其他功能待研究╮(╯_╰)╭撸主目前在上海一个不知名国企打工,我们现在项目的发布流程

  • Jenkins集成Gitlab实现自动化部署的全过程记录

    目录 一.环境准备 1.配置无密码登录 (1)Jenkins 服务器上生成一对公钥.私钥 (2)获取公钥信息 (3)获取私钥信息 (4)复制公钥到应用服务器 二.配置 Gitlab 1.创建示例项目 test-code-review 2.配置 SSH Keys 3.配置 Access Token 三.配置 Jenkins 1.安装插件 2.配置 GitLab 凭据 3.配置 GitLab 连接 4.配置 Publish over SSH 5.配置 SSH Servers 6.创建任务 7.配置任

  • 阿里SpringBoot应用自动化部署实现IDEA版Jenkins

    目录 CloudToolkit简介 安装 使用 自动化部署 常用功能 总结 之前分享过一些使用Jenkins进行自动化部署的技巧 ,最近发现一款阿里出品的IDEA插件CloudToolkit,不仅支持直接打包应用部署到远程服务器上,而且还能当终端工具使用.试用了一把这个插件,非常不错,推荐给大家!装上这个插件,IDEA一站式开发又近了一步! SpringBoot实战电商项目mall(50k+star)地址:github.com/macrozheng/… CloudToolkit简介 CloudT

  • 教你如何利用docker-maven-plugin自动化部署

    1.docker-maven-plugin 介绍 在我们持续集成过程中,项目工程一般使用 Maven 编译打包,然后生成镜像,通过镜像上线,能够大大提供上线效率,同时能够快速动态扩容,快速回滚,着实很方便.docker-maven-plugin 插件就是为了帮助我们在Maven工程中,通过简单的配置,自动生成镜像并推送到仓库中. **作用: 在编译工程时,能自动生成docker image,还可以远程推送至仓库,只需要在maven的配置文件pom.xml中合理的配置** 例子一(编译时自动生成d

  • Jenkins+Docker 一键自动化部署 SpringBoot 项目的详细步骤

    目录 Jenkins+Docker 一键自动化部署 SpringBoot 项目 一.安装docker 1.确保 yum 包更新到最新 2.卸载旧版本(如果安装过旧版本的话) 3.安装需要的软件包 4.设置yum源 5.安装docker 6.启动和开机启动 7.验证安装是否成功 二.安装Jenkins 1.安装Jenkins 2.初始化Jenkins 2.1 解锁Jenkins 2.2 安装插件 2.3 创建管理员用户 三.系统配置 1. 安装需要插件 2. 配置Maven 四.创建任务 1. 新

  • springboot docker jenkins 自动化部署并上传镜像的步骤详解

    springboot + docker + jenkins自动化部署项目,jenkins.mysql.redis都是docker运行的,并且没有使用虚拟机,就在阿里云服务器(centos7)运行 1.前期准备工作不说了 2.在项目根目录下新建Dockerfile Dockerfile文件内容为: #基础镜像 FROM openjdk:12 #作者 MAINTAINER demo <demo@qq.com> VOLUME /tmp #指定配置文件,以及jar包在服务器上的路径 ENTRYPOIN

随机推荐