SpringBoot+Docker+Git+Jenkins实现简易的持续集成和持续部署

简介: 本篇文章引导你使用Jenkins部署SpringBoot项目,同时使用Docker和Git实现简单的持续集成和持续部署。

前言

本篇文章引导你使用Jenkins部署[SpringBoot项目],同时使用Docker和Git实现简单的持续集成和持续部署。(项目地址:sso-merryyou)

流程图如下:

push代码到Github触发WebHook。(因网络原因,本篇使用gitee)
Jenkins从仓库拉去代码
mavem构建项目
代码静态分析
单元测试
build镜像
push镜像到镜像仓库(本篇使用的镜像仓库为网易镜像仓库)
更新服务
Jenkins安装

下载jenkins

https://jenkins.io/download/下载对应的jenkins

初始化密码

访问本地:http://localhost:8080输入密码

选择插件

进入用户自定义插件界面,选择第二个(因为我们本次构建使用的为Pipelines)

勾选与Pipelines相关的插件

等待插件安装完成

配置用户名和密码

全局配置

系统管理-》全局工具配置 配置Git,JDK和Maven

安全配置

系统管理-》全局安全配置

勾选Allow anonymous read access
取消防止跨站点请求伪造

新建任务

新建任务-》流水线

构建脚本

勾选触发远程构建 (WebHooks触发地址),填写简单的Pipeline script

#!groovy
pipeline{
    agent any

    stages {

        stage('test'){
            steps {
                echo "hello world"
            
            }
        }            
    }
}

测试脚本

立即构建

控制台输出

gitee集成WebHooks

添加SSH公匙

配置WebHooks

使用natapp实现内网穿透

修改脚本

修改Pipeline script

#!groovy
pipeline{
    agent any
    //定义仓库地址
    environment {
        REPOSITORY="https://gitee.com/merryyou/sso-merryyou.git"
    }

    stages {

        stage('获取代码'){
            steps {
                echo "start fetch code from git:${REPOSITORY}"
                //清空当前目录
                deleteDir()
                //拉去代码    
                git "${REPOSITORY}"
            }
        }

        stage('代码静态检查'){
            steps {
                //伪代码检查
                echo "start code check"
            }
        }        

        stage('编译+单元测试'){
            steps {
                echo "start compile"
                //切换目录
                dir('sso-client1') {
                    //重新打包
                    bat 'mvn -Dmaven.test.skip=true -U clean install'
                }
            }
        }

        stage('构建镜像'){
            steps {
                echo "start build image"
                dir('sso-client1') {
                    //build镜像
                    bat 'docker build -t hub.c.163.com/longfeizheng/sso-client1:1.0 .'
                    //登录163云仓库
                    bat 'docker login -u longfei_zheng@163.com -p password hub.c.163.com'
                    //推送镜像到163仓库
                    bat 'docker push hub.c.163.com/longfeizheng/sso-client1:1.0'
                }
            }
        }

        stage('启动服务'){
            steps {
                echo "start sso-merryyou"
                //重启服务
                bat 'docker-compose up -d --build'
            }
        }                

    }
}

Pipeline的几个基本概念:

Stage: 阶段,一个Pipeline可以划分为若干个Stage,每个Stage代表一组操作。注意,Stage是一个逻辑分组的概念,可以跨多个Node。

Node: 节点,一个Node就是一个Jenkins节点,或者是Master,或者是Agent,是执行Step的具体运行期环境。

Step: 步骤,Step是最基本的操作单元,小到创建一个目录,大到构建一个Docker镜像,由各类Jenkins Plugin提供。

更多Pipeline语法参考:pipeline 语法详解

测试

docker-compose up -d 启动服务

访问http://sso-taobao:8083/client1登录

修改内容效果如下:

更多效果图

代码下载

github:https://github.com/longfeizheng/sso-merryyou
gitee:https://gitee.com/merryyou/sso-merryyou
文章来源:https://my.oschina.net/merryyou/blog/1799317

目录
相关文章
|
2月前
|
Kubernetes jenkins 持续交付
Artifact Hub在Kubernetes中的应用:部署Jenkins的脚本整理
以上步骤断言清晰明确地描述了如何通过Artifact Hub 使用Helm图表来部署Kubernetes 中得Jenkis 实例,并且提供了相应得Shell 脚本作为执行指南. 这样不但能够帮助用户快速地进行操作, 同时也能够通过自定义参数来满足不同用户需求.
108 5
存储 jenkins 持续交付
503 2
|
3月前
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
421 0
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
4月前
|
Java jenkins 应用服务中间件
结合Jenkins与Tomcat,实施Maven项目的自动构建和部署流程。
任何项目构建和部署的自动化流程,总离不开对各个环节精细把控与密切配合。涉及到源代码管理、构建工具、持续集成服务器以及最终的运行时环境的协调。通过上述简洁实用的步骤,可以实现Maven项目从源代码到运行状态的无缝过渡,进而提升软件开发的效率与质量。
292 0
|
8月前
|
jenkins Java Linux
Jenkins环境的部署及任务构建
以上就是Jenkins环境的部署及任务构建的全部内容。希望可以帮助你轻松上手Jenkins,让你的CI/CD之旅更加顺畅!
513 68
|
10月前
|
监控 jenkins Shell
jenkins结合gitlab实现CI(持续集成)
通过本文的介绍,我们详细了解了如何结合Jenkins和GitLab实现持续集成。从环境准备、插件配置到Pipeline任务创建和CI流程监控,每一步都提供了详细的操作步骤和示例代码。希望本文能帮助开发者快速搭建起高效的CI系统,提高项目开发效率和代码质量。
863 9
|
12月前
|
监控 jenkins Linux
从 Jenkins 持续集成出发:探究如何监控员工电脑屏幕
Jenkins 在企业信息化管理中用于自动化构建、测试和部署,提高开发效率。本文讨论了其重要性,并从技术角度探讨了屏幕监控的可能性,但明确反对非法监控,强调应合法合规地管理企业和尊重员工隐私。
224 12
|
12月前
|
移动开发 jenkins 持续交付
jenkins配置git
通过上述步骤,您可以在 Jenkins 中成功配置 Git,从而实现自动拉取代码并进行构建和部署。这些配置不仅提高了开发效率,还保证了代码的连续集成和交付。确保每一步配置正确,以避免在实际使用中遇到问题。
915 1
|
12月前
|
运维 jenkins Java
Jenkins 自动化局域网管控软件构建与部署流程
在企业局域网管理中,Jenkins 作为自动化工具,通过配置源码管理、构建及部署步骤,实现了高效、稳定的软件开发与部署流程,显著提升局域网管控软件的开发与运维效率。
229 5
|
Java Linux Docker
什么是 Docker?如何将 Spring Boot 应用程序部署到 Docker?
什么是 Docker?如何将 Spring Boot 应用程序部署到 Docker?
467 3