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 技巧 ~



相关文章
|
2月前
|
jenkins 持续交付 开发者
自动化部署:使用Jenkins和Docker实现持续集成与交付
【8月更文挑战第31天】本文旨在为读者揭示如何通过Jenkins和Docker实现自动化部署,从而加速软件开发流程。我们将从基础概念讲起,逐步深入到实际操作,确保即使是初学者也能跟上步伐。文章将提供详细的步骤说明和代码示例,帮助读者理解并应用这些工具来优化他们的工作流程。
|
1月前
|
应用服务中间件 nginx Docker
单机编排工具之docker-compose快速入门使用
这篇文章是关于如何使用docker-compose进行单机编排的快速入门指南,包括了镜像准备、docker-compose安装、使用教程以及验证服务生效的步骤。
45 2
单机编排工具之docker-compose快速入门使用
|
1月前
|
Ubuntu Linux Docker
docker swarm快速入门篇
关于Docker Swarm集群部署和验证高可用性的快速入门教程。
23 2
|
2月前
|
持续交付 jenkins Devops
WPF与DevOps的完美邂逅:从Jenkins配置到自动化部署,全流程解析持续集成与持续交付的最佳实践
【8月更文挑战第31天】WPF与DevOps的结合开启了软件生命周期管理的新篇章。通过Jenkins等CI/CD工具,实现从代码提交到自动构建、测试及部署的全流程自动化。本文详细介绍了如何配置Jenkins来管理WPF项目的构建任务,确保每次代码提交都能触发自动化流程,提升开发效率和代码质量。这一方法不仅简化了开发流程,还加强了团队协作,是WPF开发者拥抱DevOps文化的理想指南。
49 1
|
2月前
|
Kubernetes jenkins 持续交付
Jenkins 插件生态:提升自动化能力
【8月更文第31天】Jenkins 是一个开源的持续集成/持续交付(CI/CD)平台,广泛应用于软件开发的各个阶段。Jenkins 的一大特色就是其丰富的插件生态系统,这些插件极大地扩展了 Jenkins 的功能,使其能够适应各种各样的应用场景。本文将深入探讨 Jenkins 的插件生态系统,并指导如何选择和配置插件以满足特定需求。
64 1
|
2月前
|
持续交付 jenkins C#
“WPF与DevOps深度融合:从Jenkins配置到自动化部署全流程解析,助你实现持续集成与持续交付的无缝衔接”
【8月更文挑战第31天】本文详细介绍如何在Windows Presentation Foundation(WPF)项目中应用DevOps实践,实现自动化部署与持续集成。通过具体代码示例和步骤指导,介绍选择Jenkins作为CI/CD工具,结合Git进行源码管理,配置构建任务、触发器、环境、构建步骤、测试及部署等环节,显著提升开发效率和代码质量。
48 0
|
2月前
|
JavaScript jenkins 持续交付
自动化部署与持续集成:使用Jenkins和Docker优化开发流程
【8月更文挑战第31天】在软件开发的世界里,时间就是一切。本文将引导你通过Jenkins和Docker的强大组合,实现自动化部署和持续集成,让你的开发流程如丝般顺滑。我们将从基础设置开始,逐步深入到构建管道,最终实现一键部署的梦想。准备好让你的开发效率飞跃,一起探索这个令人兴奋的旅程吧!
|
2月前
|
jenkins Shell 持续交付
自动化部署:使用Jenkins和Docker实现CI/CD
【8月更文挑战第31天】 本文旨在引导读者了解如何通过Jenkins和Docker来实现持续集成和持续部署(CI/CD),从而优化开发流程,提升工作效率。文章将详细介绍配置Jenkins服务器、创建Docker镜像以及设置自动化构建和部署的步骤。通过实际操作案例,我们将展示如何将代码变更快速部署到测试或生产环境,确保软件质量与发布速度的双重保障。
|
2月前
|
Kubernetes jenkins 持续交付
Jenkins 与 Kubernetes 的集成:实现高效的资源管理和自动化部署
【8月更文第31天】随着微服务架构的普及,Kubernetes 已经成为了容器编排的事实标准。Kubernetes 提供了一种强大的方式来管理容器化的应用程序,而 Jenkins 则是持续集成与持续部署(CI/CD)领域的一个重要工具。将 Jenkins 与 Kubernetes 集成,不仅可以充分利用 Kubernetes 的资源管理能力,还能通过 Jenkins 实现自动化构建、测试和部署,从而提高开发效率和部署速度。本文将详细介绍如何将 Jenkins 集成到 Kubernetes 环境中,并提供具体的代码示例。
96 0
|
2月前
|
前端开发 jenkins 持续交付
jenkins学习笔记之二十:docker in docker运行pipeline
jenkins学习笔记之二十:docker in docker运行pipeline
下一篇
无影云桌面