Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)(下)

简介: Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)

Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)(上)+https://developer.aliyun.com/article/1492251

5、点击“New Item” 选中Maven Project,输出item 名称,选择"OK"

6、配置job的Gitee源代码仓库信息

配置Gitee代码仓库的信息

仓库授权

7、配置打包方式

8、配置执行脚本

执行脚本参考内容

#!/bin/bash
# 服务名称
SERVER_NAME=xxxx服务名
# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行  
JAR_NAME=demo-0.0.1-SNAPSHOT
# 源jar路径  
#/usr/local/jenkins_home/workspace--->jenkins 工作目录
#demo 项目目录
#target 打包生成jar包的目录
JAR_PATH=/var/jenkins_home/workspace/xxxx服务名/target
# 打包完成之后,把jar包移动到运行jar包的目录
JAR_WORK_PATH=/var/jenkins_home/workspace/xxxx服务名/target
 
echo "查询进程id-->$JAR_NAME"
# print $1 这里的1是PID所属的列名。可以在jenkis中使用ps -ef 命令确定
PID=`ps -ef | grep "$JAR_NAME" | awk '{print $1}'`
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
 
BUILD_ID=dontKillMe nohup java -jar  $JAR_NAME.jar  &

9、保存配置。

10、开始Build,第一次构建时间较长。建议可以将Maven镜像修改为国内镜像。

11、观察发现Build成功

12、映射端口号, 开放容器内部的应用端口号。

建议先删除原先的容器,避免8080端口的占用。由于我们做了数据卷挂载,所有重启容器也不需要重新配置Jenkins。

docker run -d -p 8080:8080 -p 8082:8082 -p 50000:50000 -v jenkins_data:/var/jenkins_home --name firstJenkis jenkinsci/blueocean

13、回到Jenkins界面,重新构建。等待构建完成后访问端口。

14、在IDEA中进行修改,并提交到Gitee。

回到Jenkins重新Build,观察日志发现自动在下载master分支下的最新版本。

15、等待构建完成,重新访问,okey,so much for this chapter!

Jenkins + Docker + Gitee 自动化实操

Builder Trigger 介绍

实现自动化部署,只需要配置好构建触发器以及触发的事件即可。前往任务配置的触发器构建: Configure -> Build Triggers 选项卡

  1. Enabled Gitee triggers勾选您所需要的构建触发规则,如Push Event,Opened Merge Request Events勾选的事件会接受WebHook,触发构建。目前支持触发事件有:
  • Push Events :推送代码事件
  • Commit Comment Events :评论提交记录事件
  • Opened Merge Request Events :提交 PR 事件
  • Updated Merge Request Events :更新 PR 事件
  • Accepted Merge Request Events :接受/合并 PR 事件
  • Closed Merge Request Events :关闭 PR 事件
  • Approved Pull Requests : 审查通过 PR 事件
  • Tested Pull Requests :测试通过 PR 事件
  1. Build Instruction Filter
  • None : 无过滤
  • [ci-skip] skip build :commit message 或者 PR 说明包含 [ci-skip] 时,跳过构建触发。
  • [ci-build] trigger build :commit message 或者 PR 说明包含 [ci-build] 时,触发构建。
  1. Ignore last commit has build 该选项可以跳过已经构建过的 Commit 版本。
  2. Cancel incomplete build on same Pull Requests 该选项在 PR 触发构建时,会判断是否存在相同 PR 且未完成的构建,有则取消未完成构建,再进行当前构建。
  3. Ignore Pull Request conflicts 该选项在 PR 触发构建时,会根据 PR 冲突情况选择是否进行构建。
  4. Allowed branches 可以配置允许构建的分支,目前支持分支名和正则表达式的方式进行过滤。
  5. Secret Token for Gitee WebHook 该选项可以配置 WebHook 的密码,该密码需要与Gitee WebHook配置的密码一致方可触发构建。
  6. 注意:若 PR 状态为不可自动合并,则不触发构建。

实操

1、配置Build Trigger

生成密钥

2、映射webHook,并进行添加绑定。

3、在Gitee手动测试,发现成功

4、提交代码,

当提交后,发现该job自动build 中。

测试成功!!! 散花。

FAQ

配置git仓库后Jenkins从git仓库拉取地址失败,出现错误“Host Key Vertication Failed”

1、需要在Jenkis容器中生成公钥,并配置到对应的Git远程仓库。

2、注意使用类似命令git ls-remote -h 仓库地址 HEAD 来注册下远程仓库在Jenkis容器内部的信任。

Jenkins 和 Gitee 配置自动部署时,在Gitee的测试中显示“ HTTP ERROR 403 anonymous is missing the Job/Build permission”

1、在Jenkins上安装Role-based Authorization Strategy插件。

2、在Jenkins的“Manage Jenkins-> Configure Global Security”配置如下图的权限。

参考地址1:https://gitee.com/oschina/Gitee-Jenkins-Plugin/issues/IWZSR

参考地址2: https://www.cnblogs.com/Dy1an/p/11202544.html

参考地址3: https://gitee.com/help/articles/4193

关注公众号:熊猫Jay字节之旅,了解更多 AI 技巧 ~



相关文章
|
15天前
|
测试技术 开发工具 git
利用Git Hooks自动化你的开发流程
Git Hooks 是 Git 的强大功能,允许在特定事件(如提交、推送、合并请求)发生时自动执行脚本。通过合理设置和使用 Git Hooks,可以自动化测试、代码风格检查等任务,提高代码质量和开发效率。本文介绍了如何设置和使用常用的 Git Hooks,包括 `pre-commit`、`pre-push` 和 `post-merge`,并提供了最佳实践建议。
|
2月前
|
运维 监控 jenkins
运维自动化实战:利用Jenkins构建高效CI/CD流程
【10月更文挑战第18天】运维自动化实战:利用Jenkins构建高效CI/CD流程
|
2月前
|
测试技术 开发工具 git
利用Git Hooks自动化你的开发流程
【10月更文挑战第6天】在现代软件开发中,版本控制至关重要,Git作为主流工具,提供了强大的代码管理功能。Git Hooks 是 Git 的一个特性,可在特定事件(如提交、推送)发生时自动执行脚本,实现开发流程自动化。本文介绍 Git Hooks 的基本概念、常见用例及设置方法,涵盖 pre-commit、pre-push 等多种类型的 Hooks,并展示了如何利用它们进行代码格式化、自动化测试和风格检查,提升开发效率与代码质量。通过合理应用 Git Hooks,可以显著减少人为错误,确保代码一致性,并促进团队协作。
|
2月前
|
运维 jenkins 持续交付
自动化部署的魅力:如何用Jenkins和Docker简化运维工作
【10月更文挑战第7天】在现代软件开发周期中,快速且高效的部署是至关重要的。本文将引导你理解如何使用Jenkins和Docker实现自动化部署,从而简化运维流程。我们将从基础概念开始,逐步深入到实战操作,让你轻松掌握这一强大的工具组合。通过这篇文章,你将学会如何利用这些工具来提升你的工作效率,并减少人为错误的可能性。
|
2月前
|
运维 监控 jenkins
运维自动化实践:利用Jenkins实现高效CI/CD流程
【10月更文挑战第18天】运维自动化实践:利用Jenkins实现高效CI/CD流程
|
3月前
|
应用服务中间件 nginx Docker
单机编排工具之docker-compose快速入门使用
这篇文章是关于如何使用docker-compose进行单机编排的快速入门指南,包括了镜像准备、docker-compose安装、使用教程以及验证服务生效的步骤。
62 2
单机编排工具之docker-compose快速入门使用
|
3月前
|
Ubuntu Linux Docker
docker swarm快速入门篇
关于Docker Swarm集群部署和验证高可用性的快速入门教程。
52 2
|
4月前
|
JavaScript jenkins 持续交付
自动化部署与持续集成:使用Jenkins和Docker优化开发流程
【8月更文挑战第31天】在软件开发的世界里,时间就是一切。本文将引导你通过Jenkins和Docker的强大组合,实现自动化部署和持续集成,让你的开发流程如丝般顺滑。我们将从基础设置开始,逐步深入到构建管道,最终实现一键部署的梦想。准备好让你的开发效率飞跃,一起探索这个令人兴奋的旅程吧!
|
4月前
|
jenkins Shell 持续交付
自动化部署:使用Jenkins和Docker实现CI/CD
【8月更文挑战第31天】 本文旨在引导读者了解如何通过Jenkins和Docker来实现持续集成和持续部署(CI/CD),从而优化开发流程,提升工作效率。文章将详细介绍配置Jenkins服务器、创建Docker镜像以及设置自动化构建和部署的步骤。通过实际操作案例,我们将展示如何将代码变更快速部署到测试或生产环境,确保软件质量与发布速度的双重保障。
|
Docker 容器
docker实操安装,拿捏
本文均为本人实操整理,请勿搬运,学习交流可以随时评论---魏红斌
101 0