Jenkins+Docker+Maven流水线Pipeline部署springboot项目

Jenkins+Docker+Maven流水线Pipeline部署springboot项目

概述

书接上文,本篇提供另一种jenkins部署方式。
附上篇链接:Jenkins+Docker+Maven部署springboot项目.

介绍

流水线部署方式基本与上篇相同,区别就是部署步骤执行shell
脚本的方式。环境安装及配置不再赘述可参考上篇博文。

创建任务

1.创建流水线任务需要装一个插件,进入插件管理,安装下图红框中的插件。
在这里插入图片描述

2.创建流水线任务。
在这里插入图片描述
填入项目github地址
在这里插入图片描述
填入pipeline脚本

在这里插入图片描述

node {
   
   def BUILD_DIR = "/root/build-workspace/"
   env.BUILD_DIR = "/root/build-workspace/"
   env.MODULE = "hello"
    
   stage('Preparation') { // for display purposes
      // Get some code from a GitHub repository
      git branch: 'master', credentialsId: 'githubpwd', url: 'https://github.com/zhanghr1217/jenkins.git'
   }
   stage('Maven Build') {
      // Run the maven build
      sh "mvn -Dmaven.test.failure.ignore -DskipTests clean install"
   }
   stage('Deploy') {
       sh "/opt/script/build-image.sh"
   }
}

应该很好理解,其中分支,凭证id,项目地址根据自己项目情况及全局配置信息进行调整

注意最下方 sh “/opt/script/build-image.sh”

在此处执行dockr镜像的shell脚本

来到服务器根目录下的/opt目录mkdir script文件夹
build-image.sh脚本可以vim进行编写也可在windows下新建txt写入内容,重命名build-image.sh然后,上传到/opt/script文件夹
一下为build-image.sh内容

#!/bin/bash
echo "开始运行"
echo "停止app"
docker stop app
echo "删除容器app"
docker rm app
echo "删除镜像yzx/accout-mange:latest"
docker rmi -f yzx/accout-mange:latest

#要把jar包制作成镜像就必须使用docker build命令 同时必须有对应的Dockerfile(指定jar包位置是在Dockerfile指定)
# . 表示当前目录 -f 参数指定Dockerfile文件  -t 表示 制作的镜像tag 
cd /var/lib/jenkins/workspace/accout-mange
docker build -f Dockerfile  -t  yzx/accout-mange:latest  .

echo "新容器id:"
docker create --name app \
-p 9999:8080 \
-v /tmp/accout:/tmp/accout \
yzx/accout-mange:latest

echo "启动容器名:"
docker start app

echo "执行完毕,浏览器打开IP:9999浏览"

3.完成以上步骤即可开始构建
在这里插入图片描述
出现以上错误是Jenkins无文件操作权限所致,无法运行build-image.sh脚本,解决方案:执行

chmod +x build-image.sh

4.另一个错误
在这里插入图片描述
以上错误是之前采用上传方式完成build-image.sh,其是windows下dos格式文件 vim编写此文件则不会由此问题。
解决方式:

1.  vi build-image.sh
:set ff可查看格式
2.  :set ff
:set fileformat 修改文件格式
3.  :set fileformat=unix
保存退出即可
4.  :wq

再次构建,构建成功
在这里插入图片描述
测试

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Jenkins是一款开源的持续集成工具,它可以帮助开发团队自动化地构建、测试和部署软件项目。在Jenkins中配置Docker插件后,我们可以结合Docker技术来进行自动化部署Docker是一种轻量级的容器化技术,它可以将应用程序和其依赖的环境打包成一个可移植的容器,方便在不同的环境中部署和运行。 而Kubernetes(简称K8s)是一个开源的容器编排平台,它可以管理和调度Docker容器集群。通过在K8s中创建Pod、Service等资源对象,我们可以实现Spring Cloud项目的自动化部署。 首先,我们可以使用JenkinsPipeline功能来编写自动化部署流水线脚本。流水线脚本可以定义一系列的步骤,包括构建、测试和部署等。在流水线脚本中,我们可以使用Docker插件来创建Docker镜像,并将其推送到Docker仓库。接着,我们可以使用K8s插件来在Kubernetes集群中创建相关的资源对象,如Deployment和Service等。 在自动化部署过程中,我们可以将Spring Cloud项目的源代码与Dockerfile放在一个Git仓库中,并通过Jenkins的Webhook功能来触发自动化部署流水线。当有新的代码提交时,Jenkins会自动拉取最新的代码,并执行流水线脚本。在流水线脚本中,我们可以使用Maven或Gradle等工具来构建和打包Spring Cloud项目。然后,通过Docker插件创建可运行的Docker镜像,并将其推送到Docker仓库。 最后,使用K8s插件在Kubernetes集群中创建相关的资源对象,如Deployment和Service等。通过创建Deployment对象,我们可以定义应用程序的副本数和容器的镜像。通过创建Service对象,我们可以定义应用程序可以访问的网络端口和负载均衡规则。 通过JenkinsDocker和Kubernetes的自动化部署,我们可以实现Spring Cloud项目的快速、可靠和可重复部署。这种自动化部署的方式可以提高开发效率和部署质量,同时也降低了运维成本和风险。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值