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月前
|
Linux Shell 开发工具
Git 快速入门:全面了解与安装步骤
Git 是一个开源的分布式版本控制系统,由 Linus Torvalds 于 2005 年创建,最初是为了更好地管理 Linux 内核开发而设计。
62 1
Git 快速入门:全面了解与安装步骤
|
1月前
|
数据库 Docker 容器
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。
Docker在现代软件开发中扮演着重要角色,通过Dockerfile自动化构建Docker镜像,实现高效、可重复的构建过程。Dockerfile定义了构建镜像所需的所有指令,包括基础镜像选择、软件安装、文件复制等,极大提高了开发和部署的灵活性与一致性。掌握Dockerfile的编写,对于提升软件开发效率和环境管理具有重要意义。
73 9
|
2月前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
|
3月前
|
运维 监控 jenkins
运维自动化实战:利用Jenkins构建高效CI/CD流程
【10月更文挑战第18天】运维自动化实战:利用Jenkins构建高效CI/CD流程
|
3月前
|
运维 监控 jenkins
运维自动化实践:利用Jenkins实现高效CI/CD流程
【10月更文挑战第18天】运维自动化实践:利用Jenkins实现高效CI/CD流程
|
3月前
|
开发工具 git
【Git快速入门】Git代码管理手册与协同开发之分支管理与协作(五)
【Git快速入门】Git代码管理手册与协同开发之分支管理与协作(五)
|
3月前
|
网络协议 网络安全 开发工具
【Git快速入门】Git代码管理手册与协同开发之远程仓库(四)
【Git快速入门】Git代码管理手册与协同开发之远程仓库(四)
|
3月前
|
开发工具 git
【Git快速入门】Git代码管理手册与协同开发之基本操作(三)
【Git快速入门】Git代码管理手册与协同开发之基本操作(三)
|
3月前
|
Shell 开发工具 git
【Git快速入门】Git代码管理手册与协同开发之基本操作(二)
【Git快速入门】Git代码管理手册与协同开发之基本操作(二)
|
9天前
|
数据库 Docker 容器
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
158 93

热门文章

最新文章