Jenkins +Docker+Git 实现自动部署
时间:2021-08-11
本文章向大家介绍Jenkins +Docker+Git 实现自动部署,主要包括Jenkins +Docker+Git 实现自动部署使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Jenkins +Docker+Git 实现自动部署
实现原理:
1.Docker安装Jenkins
1. 运行Jenkins,如果没有jenkins镜像,回去自动下载
docker run -d -p 8080:8080 -p 50000:50000 -v jenkins_data:/var/jenkins_home jenkinsci/blueocean
2. 访问jenkins (使用8080端口)
docker把Jenkins容器运行起来后就可以访问Jemkins咯
管理员密码在运行Jenkins的时候会打印出来,如下图
如果找不到密码的话也可以去/var/jenkins_home/secrets/initialAdminPassword
文件夹下找到
docker ps #查询运行的容器
docker exec -it 1e89f679ced9 cat /var/jenkins_home/secrets/initialAdminPassword
输入密码后,点击“安装推荐的插件”
等待插件安装完毕后,创建一个管理员的用户名和密码
然后点击保存,到此Jenkins就搭建完毕,下面开始对jenkins进行设置
2.配置Jenkins
1.JDK环境安装
进入到jenkins容器中 echo $JAVA_HOME 获取java环境安装地址
#1e89f679ced9是Jenkins运行的容器id,使用docker ps查看
docker exec -it 1e89f679ced9 echo $JAVA_HOME
进入Jekins页面后,找到全局配置工具
填入查询出来的JDK路径
2.Manven环境安装
设置好了点击apply保存
3. 安装Jenkins对应Maven插件
找到 “系统管理“ - “安装插件” ,点击 “可选插件”,找到如下maven插件的版本 ,插件名称 Maven Integration
3.Jenkins实现Springboot项目自动部署
1.新创建一个任务
2.配置Git
项目打包配置
配置脚本
#!/bin/bash
# #!/bin/bash是指此脚本使用/bin/bash来解释执行。其中,#!是一个特殊的表示符,其后,跟着解释此脚本的shell路径。
#bash只是shell的一种,还有很多其它shell,如:sh,csh,ksh,tcsh,...
# #!/bin/bash只能放在第一行,如果后面还有#!,那么只能看成是注释。
#服务名称
SERVER_NAME=group4_springboot
#源jar路径,mm打包完成之后,target目录下的jar包名称,也可选择成为war包,war包 可移动到Tomcat的。
JAR_NAME=group4-0.0.1-SNAPSHOT#要和idea中生成的jar名相同
#target打包生成jar包的目录
JAR_PATH=/var/jenkins_home/workspace/group4_springboot/target # 以具体的打包位置为准,可以先构建一次项目,通过日志查看打包的目录
#打包完成之后,把iar包移动到运行jar包的目录
JAR_WORK_PATH=/var/jenkins_home/workspace/group4_springboot/target
echo "查询进程id-->$SERVER_NAME"
PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'`
echo"得到进程ID: $PID"
echo"结束进程"
for id in $PID
do
kill -9 $id
echo "killed $id"
done
echo"结束进程完成"
#复制jar包到执行目录_
echo" 复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
echo"复 制jar包完成"
cd $JAR_WORK_PATH
#修改文件权限
chmod 755 $JAR_NAME.jar
#前台启动
#java -jar $JAR_NAME.jar
#后台启动
BUILD_ID=dontKillMe nohup java -jar $JAR_NAME.jar &
点击保存应用,到此为止,jenkins可以帮我们打包部署,但是还不能实现往git上推送代码后自动打包、部署
3.配置Gitee的WebHooks
在Jenkins上需要安装gitee插件、publish over ssh插件
安装好gitee插件后才会有Gitee webhook触发构建
Gitee设置webHook
找到你发布到gitee上的项目,按照下图设置
添加webHook
点击“添加”,如下图表示设置成功,就可以实现gitee代码有推送的话,Jenkins会自动打包部署
原文地址:https://www.cnblogs.com/seanRay/p/15126859.html
- [喵咪Liunx(3)]端口转发工具rinetd
- 基于PhalApi的Smarty拓展
- PhalGo-参数验证过滤
- [喵咪Redis]Redis配置文件和主从设置
- [喵咪Redis]Redis-Sentinel
- [喵咪Redis]Redis安装与介绍
- [喵咪Liunx(4)Monit进程监控
- 【第四期】GC专题
- ML中相似性度量和距离的计算&Python实现
- ASP.NET MVC Model元数据及其定制: Model元数据的定制
- 小白也可以操作的手机TensorFlow教程:Android版和iOS版
- PhalApi-PHPExcel基于PhalApi的PHPExcel拓展
- [喵咪软件推荐(2)]全球服务器测速工具speedtest-cli
- 使用Keras创建一个卷积神经网络模型,可对手写数字进行识别
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- redis灵魂拷问:聊一聊AOF日志重写
- 小程序返回的时间戳转化成时间
- JSP 报错:ReferenceError: $ is not defined
- 小程序使用 组件库 vant-weapp详细教程
- DEBUG=1 宏定义对 @weakify 和 @strongify 的影响分析
- 为什么 demangle 会失败?
- js使用webgl
- Java 后台开发面试题分享三
- llvm 对 copy 属性的优化(1)
- Zookeeper 分布式技术入门
- llvm 对 copy 属性的优化(2)
- 为什么 Linux 默认页大小是 “4KB”?
- Swift Module Interfaces
- Swift 的 MemoryLayout 是如何工作的(1)
- Redis - NoSQL 和 Jedis 入门