Jenkins+Docker+gitee 持续部署spring boot 应用教程

news2024/12/23 15:44:37

目录

  • 参考
  • 安装jenkinsci
    • 拉取镜像
    • 创建目录
    • 安装maven
    • 启动镜像
    • 配置
      • 输入密码
      • 安装推荐的插件
    • 创建用户密码
    • 配置环境变量
    • 安装gitee和dingtalk插件
    • 创建SpringBoot并创建Dockfile
    • 配置gitee的webhook
    • 配置构建shell脚本
    • 配置监听gitee webhook触发构建
  • 配置dingtalk钉钉通知

参考

Jenkins+Docker+Gitee+SpringBoot自动化部署
Jenkins+Docker+gitee 持续部署spring boot 应用教程
Docker安装Jenkins自动化部署Gitee上的SpringBoot项目
使用Docker+Jenkins+Gitee自动化部署SpringBoot项目

安装jenkinsci

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成
我们先要安装Docker,安装完docker后 拉取并运行Jenkins镜像,端口映射和挂载目录可自行更改,jenkinsci/blueocean 版本能够简化流水线步骤。

拉取镜像

最新版本有默认jdk11,兼容性较差,最好用jdk8

# jdk11
docker pull docker.io/jenkinsci/blueocean
# jdk1.8
docker pull jenkins/jenkins:lts-centos7-jdk8

创建目录

mkdir /usr/local/maven
mkdir /usr/local/jenkins

安装maven

cd /usr/local/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 -zvxf apache-maven-3.6.3-bin.tar.gz

启动镜像

docker run \
     -d \
     --name jenkins \
     --net mynet \
     --rm \
     -u root \
     -p 8081:8080 \
     -v /usr/local/jenkins:/var/jenkins_home \
     -v /var/run/docker.sock:/var/run/docker.sock \
     -v /usr/bin/docker:/usr/bin/docker \
     -v /usr/local/maven/apache-maven-3.6.3:/usr/local/maven/apache-maven-3.6.3 \
     -v /usr/local/java/jdk1.8:/usr/local/java/jdk1.8 \
     -v "$HOME":/home \
     jenkinsci/blueocean

docker run \
     -d \
     --name jenkins \
     --net mynet \
     --rm \
     -u root \
     -p 8081:8080 \
     -v /usr/local/jenkins:/var/jenkins_home \
     -v /var/run/docker.sock:/var/run/docker.sock \
     -v /usr/bin/docker:/usr/bin/docker \
     -v /usr/local/maven/apache-maven-3.6.3:/usr/local/maven/apache-maven-3.6.3 \
     -v /usr/local/java/jdk1.8:/usr/local/java/jdk1.8 \
     -v "$HOME":/home \
     jenkins/jenkins:lts-centos7-jdk8

docker run \
     -d \
     --name jenkins \
     --net mynet \
     --rm \
     -u root \
     -p 8081:8080 \
     -v /usr/local/jenkins1.8:/var/jenkins_home \
     -v /var/run/docker.sock:/var/run/docker.sock \
     -v /usr/bin/docker:/usr/bin/docker \
     -v /usr/local/maven/apache-maven-3.6.3:/usr/local/maven/apache-maven-3.6.3 \
     -v /usr/local/java/jdk1.8:/usr/local/java/jdk1.8 \
     -v "$HOME":/home \
     jenkins/jenkins:lts-centos7-jdk8

docker run \
     -d \
     --name jenkins \
     --net mynet \
     --rm \
     -u root \
     -p 8081:8080 \
     -v /usr/local/jenkins1.8:/var/jenkins_home \
     -v /var/run/docker.sock:/var/run/docker.sock \
     -v /usr/bin/docker:/usr/bin/docker \
     -v /usr/local/maven/apache-maven-3.6.3:/usr/local/maven/apache-maven-3.6.3 \
     -v /usr/local/java/jdk1.8:/usr/local/java/jdk1.8 \
     -v "$HOME":/home \
     docker.io/jenkinsci/jenkins:latest


注释(左边为你的服务器路径,右边为容器内路径):

  • -v /var/run/docker.sock:/var/run/docker.sock 挂载docker的守护进程,容器内部也能调用docker命令,且与外部docker同步

  • -v /usr/bin/docker:/usr/bin/docker \ 能让容器内的 jenkins 调用并操作容器外的 docker。

  • -v /usr/java/jdk1.8.0_221:/usr/java/jdk1.8.0_221 挂载为使用容器外部的jdk

  • -v /usr/maven/apache-maven-3.6.3:/usr/maven/apache-maven-3.6.3 挂载为使用容器外部的maven

  • -v /usr/maven/maven-repository:/usr/maven/maven-repository 挂载为使用容器外部的maven仓库

  • -v /usr/webtools/jenkins/data:/var/jenkins_home 把jenkins的文件同步挂载到你的服务器

配置

打开http://192.168.0.44:8081/

输入密码

在这里插入图片描述
由于已经映射了路径,查看密码

cat /usr/local/jenkins/secrets/initialAdminPassword

安装推荐的插件

在这里插入图片描述

创建用户密码

jenkins/jenkins@123456

配置环境变量

在这里插入图片描述

安装gitee和dingtalk插件

在这里插入图片描述

创建SpringBoot并创建Dockfile

配置gitee的webhook

在这里插入图片描述
点击自动生成密码
在这里插入图片描述

配置构建shell脚本

在这里插入图片描述

#!/bin/bash -il

echo "docker rm -f app_docker"
docker rm -f app_docker
sleep 1
echo "docker rmi -f app_docker:1.0"
docker rmi -f app_docker:1.0
sleep 1
echo "mvn clean install -Dmaven.test.skip=true"
mvn clean install -Dmaven.test.skip=true
sleep 1
echo "docker build -t app_docker:1.0 -f ./Dockerfile ."
docker build -t app_docker:1.0 -f ./Dockerfile .
sleep 1
echo "docker run -d -p 7001:7001 --name app_docker app_docker:1.0"
docker run -d -p 7001:7001 --name app_docker app_docker:1.0

配置监听gitee webhook触发构建

在这里插入图片描述

配置dingtalk钉钉通知

Jenkins配置钉钉通知

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/477514.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

归纳截图小结

文章目录 web服务器、缓存和PHP加速对比没有做软连接http状态码cookie是什么图形管理界面nginx的访问路径LANM架构redisd服务整体框架免密连接kubeletk8s架构图kubeadm、kubectl、kubelet作用k8s集群token失效时,重新创建tokenk8s网络通信OSI总结pod的理解k8s核心知…

springboot+vue高校实验室预约管理系统

开发环境 开发语言:Java 后端框架:springbootweb 前端框架:vue.js 服务器:tomcat 数据库:mysql 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 校实验…

K8S集群原理(IT枫斗者)

K8S集群原理(IT枫斗者) 看图说K8S 先从一张大图来观看一下K8S是如何运作的,再具体去细化K8S的概念、组件以及网络模型。从上图,我们可以看到K8S组件和逻辑及其复杂,但是这并不可怕,我们从宏观上先了解K8S…

【设计模式】责任链模式的设计与示例

前言 责任链模式是一种行为设计模式,执行上它允许请求沿着一条处理链路依次向下传递,每个处理节点都能对当前状态的请求进行处理,满足一定条件后传递给下一个处理节点,亦或者直接结束这一次处理流程。 在现实生产环境中&#xf…

工作流框架研究

工作流框架研究 主流开源框架介绍OsWorkFlowJBPMActivitiFlowableCamundaCamunda 和Flowable对比功能上对比性能上对比 总结 主流开源框架介绍 OsWorkFlow 对于比较简单的流程,OsWorkFlow会是一个比较好的选择,对于复杂的流程就不推荐了,Os…

小 C 的数学(math)

祝大家劳动节快乐!!小手动起来 言归正传┏ (゜ω゜)☞ 题目描述 小 C 想要成为一名 OIer,于是他提前学习数学,为 OI 做好铺垫。这一天,他的数学老师给了一道题:给定正整数 a,以及给定一个区间 …

Python基础之列表元组

1.列表 序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 去锁定它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。Python有6个序列的内置类型,但最常见的是列表和元组。序列都可以进行的操作…

HTB-Forge

HTB-Forge 信息收集80端口 立足user -> root 信息收集 80端口 试试上传图片看看有什么限制。 jpg上传成功,并且会给一个随机的文件名存储图片,过了一阵子图片就会被清除。 上传phpinfo后访问界面出现报错。 看来没有执行上传的PHP代码&#xff0…

第43天-DP-第九章 ● 139.单词拆分 ● 关于多重背包,你该了解这些! ● 背包问题总结篇!

文章目录 1. 单词拆分2.多重背包3. 背包总结 1. 单词拆分 s class Solution { public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<string> wordSet(wordDict.begin(), wordDict.end());// 1. dp[i] 为true代表 可以拆分为一个或者多…

PySyft框架

openmined社区开源的pysyft框架可以提供安全的联邦学习&#xff0c;有助于解决基于“不可见数据”的统计分析与建模开发。在PySyft中&#xff0c;syft是重要的张量&#xff0c;通过建立SyftTensor抽象类来表现张量链的运算或数据状态转换。如图5-7所示&#xff0c;张量链的结构…

3.3 泰勒公式例题分析

例1 写出函数f(x)带有拉格朗日余项的n阶麦克劳林公式 我的答案&#xff1a; 一、信息 1.f(x)的表达式 2.目标求这个f(x)的n阶麦克劳林公式 二、分析 条件1&#xff1a;告诉我f(x)的表达式为我后续带入公式做准备 条件2&#xff1a;告诉我用什么公式和此次求解的方向 三…

【ONE·C++ || 二叉搜索树】

总言 二叉树进阶&#xff1a;主要介绍二叉搜索树相关内容。 文章目录 总言1、基本介绍1.1、什么是二叉搜索树 2、相关实现2.1、基本框架2.1.1、如何构建二叉树单节点2.1.2、如何定义一个二叉搜索树 2.2、非递归实现&#xff1a;插入、查找、删除2.2.1、二叉搜索树插入&#xf…

系统集成项目管理工程师 笔记(第16章:变更管理)

文章目录 16.1.2 项目变更的分类 50416.1.3 项目变更产生的原因 50516.2 变更管理的基本原则 50516.3 变更管理角色职责与工作程序 50616.3.1 角色职责 50716.3.2 工作程序 50716.4.1 变更管理操作要点 511 第16章 变更管理 504 16.1 项目变更的基本概念 504 项目变更是指在信息…

05 KVM虚拟化Linux Bridge环境部署

文章目录 05 KVM虚拟化Linux Bridge环境部署5.1 安装Linux Bridge5.1.1 安装bridge-utils软件包5.1.2 确认安装是否成功 5.2 配置Linux Bridge5.2.1 创建网桥br05.2.2 将物理网卡ens33绑定到Linux Bridge5.2.3 配置ens33的ip5.2.4 为Linux Bridge网桥br0分配ip5.2.4.1 DHCP设置…

JavaWeb04(登录绑值模糊查询功能实现连接数据库)

目录 一.实现登录功能 2.2 制作简易验证码 2.3 完成登录验证 2.4 登录实现 ①连接字符串 private static final String URL"jdbc:oracle:thin:localhost:1521:orcl"; ②加载驱动 OracleDriver private static final String URL"jdbc:oracle:thin:localh…

更好地提问ChatGPT_常用prompt表

对常见的用途&#xff0c;记录该表以便获得ChatGPT更高质量的回复。 类别目的提问方式要点文案写作周报、日报、年终总结本周我做了以下几件事情&#xff1a;出差客户办事处、交流演示、初步数据分析。请帮我写一份周报要点形式列举工作内容。可以说明职位&#xff0c;以便工作…

【五一创作】web小游戏开发:华容道(一)

web小游戏开发:华容道(一) 华容道htmlcss素材原图素材验证游戏关卡华容道 老顾儿时的记忆啊,也是一个经典的益智游戏。 游戏规则就不用再介绍了吧,就是让曹操移动到曹营就算胜利。 CSDN 文盲老顾的博客,https://blog.csdn.net/superrwfei html 经过上次的扫雷,大家应…

JavaScript 内存泄漏

内存的释放流程&#xff1a; 分配内存内存中的读写垃圾回收 对于内存的使用&#xff0c;所有语言基本都是一样的&#xff0c;只是更底层的语言在对于 ”分配内存“ 和 ”使用内存“ 是明确的&#xff0c;但是在高级语言中&#xff08;比如本文的 JS&#xff09;是隐藏了。 JS …

『python爬虫』05. requests模块入门(保姆级图文)

目录 安装requests1. 抓取搜狗搜索内容 requests.get2. 抓取百度翻译数据 requests.post3. 豆瓣电影喜剧榜首爬取4. 关于请求头和关闭request连接总结 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 安装requests …

Spring 中的顺序问题(别迟疑就是你想知道的顺序问题)

Spring 中的一些顺序问题 Spring 中的顺序问题并不是不重要&#xff0c;比如多个 BeanFactoryPostProcessor如何知道先执行哪一个&#xff1b;为什么自定义的 Bean 可以覆盖默认的自动装配的 Bean&#xff1b;AOP 拦截器链中拦截器的顺序是如何确定的等等问题。 相信看完这篇…