jenkins部署springboot项目

news/2024/11/30 1:51:10/

jenkins部署springboot项目

1、创建一个项目 上传到gitee

1、创建项目
image-20230703173308740
2、上传到git
image-20230703173344271

2、jenkins创建一个pipeline项目

Pipeline简介

1)概念
Pipeline,简单来说,一套运行在 Jenkins 上的工作流框架,将原来独立运行于单个或者多个节点 的任务连接起来,实现单个任务难以完成的复杂流程编排和可视化的工作。

2)使用Pipeline有以下好处:
代码:Pipeline以代码的形式实现,通常被检入源代码控制,使团队能够编辑,审查和迭代其传送流 程。
持久:无论是计划内的还是计划外的服务器重启,Pipeline都是可恢复的。
可停止:Pipeline可接 收交互式输入,以确定是否继续执行Pipeline。
多功能:Pipeline支持现实世界中复杂的持续交付要 求。它支持fork/join、循环执行,并行执行任务的功能。
可扩展:Pipeline插件支持其DSL的自定义扩 展 ,以及与其他插件集成的多个选项。

3)如何创建 Jenkins Pipeline呢?

  • Pipeline 脚本是由 Groovy 语言实现的,但是我们没必要单独去学习 Groovy
  • Pipeline 支持两种语法:Declarative(声明式)和 Scripted Pipeline(脚本式)语法
  • Pipeline 也有两种创建方法:
    • 可以直接在 Jenkins 的 Web UI 界面中输入脚本;
    • 也可以通过创建一 个 Jenkinsfile 脚本文件放入项目源码库中(一般我们都推荐在 Jenkins 中直接从源代码控制(SCM) 中直接载入 Jenkinsfile Pipeline 这种方法)。
      image-20230411151130644
      流水线项目配置:
      image-20230703173424199

3、自动化构建配置

1、项目结构
image-20230703173618232
2、流水线文件详情:
关于流水线语法直接省略、大家也没有必要 去了解和掌握、复制下面的即可

def project_name='jenkins01'
def tag = "latest"// 执行脚本
node {stage('拉取代码') {git credentialsId: 'be908ce3-b7d6-425f-b76a-e580044axxxx', url: 'https://gitee.com/xxx/demo_jenkins.git'}stage('工程编译'){//编译,构建sh """PATH=/usr/localhost/mavenxxx/bin:$PATHmvn clean package -Dmaven.test.skip=true"""}stage('镜像打包'){// 镜像打包sh 'pwd'sh 'docker build -t jenkins01:latest .'}stage('docker的部署'){//镜像名称def imageName = "${project_name}:${tag}"//删除原有容器  sh "docker rm -f ${project_name}"//容器加一层挂载目录 启动容器sh "docker run -id --name ${project_name} -p 9000:9000 ${imageName}"}
}

3、dockerFile文件

#FROM java:8
FROM openjdk:8
COPY ./target/demo_jenkins-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 9000
ENTRYPOINT ["java","-jar","/app.jar"]

4、构建结果
image-20230416233628506
5、上面的脚本存在问题、没有删除容器、删除镜像
我们写一个shell脚本、判断是这个容器是否存在、如果存在关闭容器、删除容器、删除镜像、重新构建

#!/bin/bash
# 容器名称
container_name="你的容器"# 镜像名称
image_name="你的镜像名字"# 判断容器是否存在
if docker ps -a --format "{{.Names}}" | grep -q "$container_name"; thenecho "容器 $container_name 存在"# 关闭容器echo "关闭容器 $container_name"docker stop $container_name# 删除容器echo "删除容器 $container_name"docker rm $container_name
elseecho "容器 $container_name 不存在"
fi# 删除镜像
if docker images --format "{{.Repository}}" | grep -q "$image_name"; thenecho "镜像 $image_name 存在"echo "删除镜像 $image_name"docker rmi $image_name
elseecho "镜像 $image_name 不存在"
fi# 重新构建镜像
echo "重新构建镜像 $image_name"
docker build -t $image_name .# 启动容器
echo "启动容器 $container_name"
docker run -id --name $container_name -p 9000:9000 $image_name

执行shell脚本:

stage('执行shell命令-镜像打包'){sh """chmod +x ./docker.shsh docker.sh"""
}

http://www.ppmy.cn/news/747026.html

相关文章

手机mstsc远程工具_如何通过手机远程控制计算机

远程控制可以非常方便的给客户或者同事提供帮助,使用移动端的远程控制,可以更及时的处理问题,Zoho Assist移动端功能非常强大,操作简洁,简单几步即可完成远程协助; 下面给大家演示使用手机端Zoho Assist的具…

html写手机登录界面,使用HTML做手机端的登录界面

博主开始做前端开发,对html5和css都不熟悉。应老师的要求硬着头皮做了这个手机端的登录页面,代码写的很烂,不喜勿喷。 手机上运行的效果图: 下面是HTML代码: 登录 登录要做适应手机屏的大小要在标签里加 css代码&#…

织梦手机站生成html,织梦手机端静态页面生成教程

织梦自带的手机端是动态的,相对于静态网站来说 ,seo优化会不好点, 那dedecms织梦程序如何生成静态页面呢? 在这里我为大家推荐一款插件,轻轻松松就可以生成静态页面,对于不会代码的朋友也很简单,只需要安装插件,然后修改参数就可以生成 静态路径是什么样的? 比如PC栏目…

Python 操控手机 APP

From:https://www.cnblogs.com/7758520lzy/p/11994776.html Python 控制雷电模拟器:https://blog.csdn.net/zerglurker/article/details/102931511 python 控制手机 python控制雷电模拟器 经常看到用 Python 操作手机 APP 的项目,例如抖音、闲…

手机移动端纯净无广告百度主页设置方法/关闭百度首页下方推荐

此方法来源为知乎,现分享给各位效果预览 设置方法 将手机浏览器的BD主页替换成此链接即可 https://m.baidu.com/?wpobtmfast&pusz%401321_480&from1013843a

关于百度手机首页广告的看法和建议

现象:百度在搜索引擎中最让用户不舒服 让我们对比bing,google,baidu三家的手机网页主页面 --- --- bing和google给人的感觉很清爽和基本的设置。最右边长长的一串就是我们的百度,广告数量惊人。 这里不探讨技术层面的问题。百度引擎有三大问题: 牛皮癣…

HTML+CSS实现网易云音乐首页(手机版)

怎么利用HTML和CSS实现手机版的响应式页面(静态)呢?当然是要利用css的弹性盒子(display)和vm与rem啦,话不多说,请看下面的效果图和代码。 效果图: 用到的图片: 实现前端…

java开发手机网页_前端编写手机兼容页面(简易方式)

这两天开始编写手机页面,作为类似官网一样的使用,因为实在手机端访问的web端,没有做过尝试,而且由于手机的种类很多,导致兼容性要求很高,在网上找了一些教程,制作完毕后决定分析给大家。 先给大…