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

news/2024/5/17 15:35:10 标签: jenkins, docker, gitee

目录

  • 参考
  • 安装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_9">安装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

配置环境变量

在这里插入图片描述

giteedingtalk_135">安装gitee和dingtalk插件

在这里插入图片描述

创建SpringBoot并创建Dockfile

giteewebhook_142">配置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_171">配置监听gitee webhook触发构建

在这里插入图片描述

配置dingtalk钉钉通知

Jenkins配置钉钉通知


http://www.niftyadmin.cn/n/277653.html

相关文章

iOS开发之Masonry框架源码深度解析

Masonry是iOS在控件布局中经常使用的一个轻量级框架,Masonry让NSLayoutConstraint使用起来更为简洁。Masonry简化了NSLayoutConstraint的使用方式,让我们可以以链式的方式为我们的控件指定约束。本篇博客的主题不是教你如何去使用Masonry框架的&#xff…

深入理解Go语言中的接口编程【17】

文章目录 接口接口接口类型为什么要使用接口接口的定义实现接口的条件接口类型变量值接收者和指针接收者实现接口的区别值接收者实现接口指针接收者实现接口下面的代码是一个比较好的面试题 类型与接口的关系一个类型实现多个接口多个类型实现同一接口接口嵌套 空接口空接口的定…

【数据库数据恢复】ndf文件损坏的SQL SERVER数据库数据恢复案例

数据库数据恢复环境: 某公司存储上部署SQL SERVER数据库,数据库中有1000多个文件,该SQL SERVER数据库每10天生成一个NDF文件,数据库包含两个LDF文件。 数据库故障&分析: 存储设备出现故障导致SQL SERVER数据库异常…

【Linux从入门到精通】vim的基本使用各种操作详解

文章目录 一、vim编辑器简单介绍 二、vim编辑器的四种模式 2、1 正常/普通/命令模式(Normal mode) 2、2 插入模式(Insert mode) 2、3 末行模式(last line mode) 三、命令模式的相关操作实例 3、1 光标的相关操作 3、2 文本操作 四、插入模式下的相关操作 五、末行模式下的相关操…

一步步解密微商城系统开发流程

作为现代商业的重要组成部分,电子商务系统的建设对于企业的发展至关重要。然而,对于一些小型企业来说,建设一个完整的电子商务系统可能会耗费大量的时间和金钱。微商城系统的出现有效地解决了这个问题,因为它可以在不需要太多资金…

压缩HTML引用字体

内容简介 有些网站为了凸显某部分字体,而引入自定义字体,但由于自定义字体相对都比较大(几M),导致页面加载缓慢;所以本文介绍三种压缩字体的方法,可根据项目情况自行选择。 压缩方法 1、利用Fontmin程序&a…

A 股指数分时行情数据 API 数据接口

A 股指数分时行情数据 API 数据接口 多维度分时指标,指数分时,多时间区间查询参数。 1. 产品功能 支持所有指数数据查询;支持指数分时数据查询;多时间维度分时数据;多维度的统计时间以及数据结果;秒级查询…

C++/Qt 小知识记录3

工作中遇到的一些小问题,总结的小知识记录:C/Qt 小知识 QLineEdit限制输入大于0的正整数QLayout内清空已布局的WidgetWindows结束进程直接结束,子进程不响应结束事件正常结束,子进程响应结束事件 CMake关闭控制台Console实体与值对…