当前位置: 首页 > article >正文

Docker 学习之路-从入门到放弃-Jenkins:4

Jenkins 打开✅如图已经完全成功安装并初始化Jenkins了从图1可以确认能正常访问Jenkins Web管理界面、登录成功核心功能入口Create a job/Manage Jenkins等正常显示构建执行器Build Executor Status显示空闲说明服务运行稳定无报错提示说明插件安装、管理员账号初始化全部完成接下来我给大家讲一套小白友好、从0到1的全流程指南实现「本地代码→GitHub→Jenkins自动打包→项目运行」每一步都有可直接复制的操作一、先理清整个流程的逻辑本地代码 → 【push推送到】GitHub仓库 → 【Jenkins pull拉取】代码 → 执行打包编译 → 构建成功后自动部署运行还可以加自动触发GitHub提交代码后自动通知Jenkins构建不用手动点二、步骤1把本地代码推送到GitHub代码托管1.1 创建GitHub仓库登录GitHub点击右上角「」→「New repository」填写仓库名比如my-java-project选择Public/Private私有仓库需要额外配置权限不要勾选「Initialize this repository with a README」本地已有代码时点击「Create repository」复制仓库地址比如https://github.com/你的GitHub用户名/你的仓库名.git1.2 本地代码关联GitHub并推送打开本地代码文件夹右键打开Git Bash或终端执行以下命令Bash# 1. 初始化本地Git仓库首次使用才需要git init# 2. 关联GitHub远程仓库替换成你自己的仓库地址git remote add origin https://github.com/你的GitHub用户名/你的仓库名.git# 3. 添加所有代码到暂存区git add .# 4. 提交代码到本地仓库git commit -m 第一次提交初始化项目代码# 5. 推送到GitHub的main分支如果是master分支把main换成mastergit push -u origin main执行完后刷新GitHub仓库能看到代码就说明这一步完成✅三、步骤2Jenkins基础环境配置Java/Maven必备你是Java开发打包需要JDK和Maven先在Jenkins里配置好工具避免打包失败。2.1 安装核心插件Jenkins首页→左侧Manage Jenkins→Plugins点击Available plugins搜索并安装以下插件Git plugin支持Jenkins拉取Git代码GitHub pluginGitHub集成、WebHook自动触发Maven Integration pluginMaven项目打包支持用Gradle就装Gradle插件NodeJS plugin如果有前端项目前端打包支持安装完成后重启JenkinsManage Jenkins→Reload Configuration from Disk或直接重启服务2.2 配置JDK、Maven全局工具Manage Jenkins→Global Tool Configuration配置JDK找到「JDK」→「Add JDK」取消Install automatically手动填写JDK安装路径Linux示例/usr/lib/jvm/java-1.8.0-openjdk-amd64Windows示例C:\Program Files\Java\jdk1.8.0_301别名填JDK8方便后续任务调用点击保存配置Maven找到「Maven」→「Add Maven」取消Install automatically手动填写Maven安装路径示例/usr/local/maven-3.8.6别名填Maven3.8.6点击保存保存后环境配置完成✅四、步骤3Jenkins创建任务拉GitHub代码打包编译3.1 创建自由风格项目小白首选简单易上手Jenkins首页→左侧New Item输入任务名比如my-java-project-build选择Freestyle project点击「OK」3.2 配置源码管理拉GitHub代码任务配置页→找到Source Code Management→选择「Git」Repository URL填写你的GitHub仓库地址私有仓库需要添加凭证点击「Add」→「Jenkins」选择Username with passwordUsername填GitHub用户名Password填GitHub Personal Access TokenPAT生成方法GitHub→Settings→Developer settings→Personal access tokens→Tokens(classic)勾选repo权限生成Branches to build填*/main对应GitHub分支master就填*/master点击「Save」再点击「Build Now」测试进入Build History→对应构建→Console Output看到拉取代码成功就说明没问题3.3 配置构建步骤Maven打包回到任务配置页→Build→「Add build step」→「Invoke top-level Maven targets」Maven Version选择刚才配置的Maven3.8.6Goals填写打包命令clean package -DskipTestsclean清理旧编译文件package打包成jar/war-DskipTests跳过测试加快打包速度避免测试失败导致打包失败点击「Save」再次点击「Build Now」测试看到BUILD SUCCESS就说明打包成功打包后的jar包在任务页→Workspace→target目录下五、步骤4GitHub自动触发Jenkins构建WebHook配置推荐现在是手动点「Build Now」配置WebHook后GitHub提交代码会自动触发Jenkins构建实现「提交自动打包」。4.1 Jenkins配置触发权限任务配置页→Build Triggers→勾选GitHub hook trigger for GITScm polling点击「Save」确认Jenkins能被外网访问如果是内网需要用ngrok等内网穿透工具4.2 GitHub配置WebHookGitHub仓库→Settings→Webhooks→「Add webhook」Payload URL填写http://你的Jenkins服务器IP:8080/github-webhook/末尾必须加/否则会失败Content type选择application/json触发事件选择Just the push event仅代码推送时触发勾选Active点击「Add webhook」配置完成后GitHub会发送测试请求显示绿色对勾就成功✅六、步骤5构建成功后自动运行项目部署启动情况1Jenkins和项目在同一台服务器最简单任务配置页→Post-build Actions→「Add post-build action」→Execute shellLinux/Execute Windows batch commandWindows填写启动脚本Linux示例替换成你的jar包名Bash# 1. 进入打包目录cd /var/lib/jenkins/workspace/my-java-project-build/target# 2. 停止旧进程避免端口占用ps -ef | grep my-java-project.jar | grep -v grep | awk {print $2} | xargs kill -9# 3. 后台启动项目指定端口输出日志nohup java -jar my-java-project.jar --server.port8081 /var/log/my-java-project.log 21 点击「Save」构建成功后会自动执行脚本启动项目✅情况2Jenkins和项目在不同服务器安装Publish Over SSH插件配置目标服务器的SSH连接构建后操作选择Send files or execute commands over SSH传输jar包到目标服务器再执行启动脚本七、小白必看避坑指南GitHub私有仓库权限GitHub已禁用密码登录必须用Personal Access TokenPATWebHook无法访问内网Jenkins需要用ngrok等内网穿透把本地8080端口映射到公网Maven打包慢配置Maven阿里云镜像直接替换settings.xml即可我可以给你现成配置Jenkins权限问题Linux下Jenkins默认用户是jenkins需要给jenkins用户操作服务器的权限端口占用启动项目时如果端口被占用换端口或杀掉占用进程如果打开Manage Jenkins 出现下图情况不用惊慌这些红色报错不是安装失败是插件版本不兼容导致的你装的插件版本太新要求更高的 Jenkins 核心版本而你当前的 Jenkins 版本不够所以插件加载失败了完全不影响基础功能使用。没关系的我的配置如下版本如下如果不放心Jenkins 借助 Docker-compose 的完美升级流程核心docker-compose pull默认会拉取配置文件里所有服务的镜像MySQL、Redis、Jenkins 全拉完全可以只拉取 Jenkins 镜像 只重启 Jenkins 容器其他服务完全不受影响关键在命令后面加上你的服务名jenkins就能精准定位操作你直接复制用的 2 条命令仅更新重启 Jenkins更新docker-compose.yml你的docker-compose.yml里服务名是jenkins所以直接用这两个命令1. 仅拉取最新的 Jenkins 镜像不拉其他任何镜像Bashdocker-compose pull jenkins✅ 作用只更新 Jenkins 镜像MySQL/Redis/其他服务完全不动2. 仅重启/重建 Jenkins 容器不重启其他容器Bashdocker-compose up -d jenkins✅ 作用用刚拉取的最新 Jenkins 镜像重建容器只操作 Jenkins其他容器保持运行无任何影响保留你的所有数据、配置、任务数据卷挂载没变补充纯重启 Jenkins不更新镜像如果只是想重启 Jenkins不想更新版本用这个Bashdocker-compose restart jenkins关键知识点一看就懂命令作用适合场景docker-compose pull拉取所有服务镜像全部服务都要更新docker-compose pull jenkins仅拉取 Jenkins 镜像只更新 Jenkinsdocker-compose up -d重启所有更新的容器全部服务重启docker-compose up -d jenkins仅重建 Jenkins 容器用新镜像只更新重启 Jenkinsdocker-compose restart jenkins仅重启 Jenkins旧镜像仅重启不更新完整升级流程零风险、不影响其他服务进入你的docker-compose.yml所在目录执行仅更新 JenkinsBashdocker-compose pull jenkins执行仅重启 JenkinsBashdocker-compose up -d jenkins等待 1 分钟访问 Jenkins 就完成升级了 ✅

相关文章:

Docker 学习之路-从入门到放弃-Jenkins:4

Jenkins 打开 ✅ 如图已经完全成功安装并初始化Jenkins了!从图1可以确认:能正常访问Jenkins Web管理界面、登录成功核心功能入口(Create a job/Manage Jenkins等)正常显示构建执行器(Build Executor Status&#xff09…...

深入TIM从模式:用STM32的TI1FP1触发实现高精度PWM测量

深入解析STM32 TIM从模式:基于TI1FP1触发的高精度PWM测量技术 在嵌入式系统开发中,精确测量PWM信号的频率和占空比是许多应用场景的基础需求,从电机控制到数字电源管理,再到各类传感器信号处理,都需要可靠的测量手段。…...

DeerFlow智能体技能开发:从零构建自定义Research Agent

DeerFlow智能体技能开发:从零构建自定义Research Agent 1. 引言 如果你正在寻找一种方法来扩展DeerFlow研究团队的能力,让AI助手能够处理更专业的研究任务,那么自定义智能体技能开发就是你需要掌握的技能。想象一下,你的研究助手…...

OpenClaw对接Qwen3-32B-Chat私有镜像:5步完成本地AI助手部署

OpenClaw对接Qwen3-32B-Chat私有镜像:5步完成本地AI助手部署 1. 为什么选择OpenClawQwen3-32B-Chat组合? 上周我在整理历年积累的技术文档时,面对散落在十几个文件夹里的2000多份PDF和Markdown文件,突然意识到手动分类已经不可能…...

如何使用 GitHub Actions + image-syncer 实现 Docker Hub 到 Azure ACR 的自动化镜像同步

背景/引言 HagiCode 项目使用 Docker 镜像作为核心运行时组件,主要镜像托管在 Docker Hub。随着项目发展和 Azure 环境部署需求的增加,我们遇到了以下痛点: 镜像拉取速度慢,Docker Hub 在国内及部分 Azure 区域访问受限依赖单一…...

如何解决多显示器DPI缩放混乱?SetDPI工具实战指南

如何解决多显示器DPI缩放混乱?SetDPI工具实战指南 【免费下载链接】SetDPI 项目地址: https://gitcode.com/gh_mirrors/se/SetDPI 在现代办公环境中,多显示器配置已成为提升工作效率的标准方案。然而,当你将4K显示器与1080P显示器组合…...

如何在ESXi 6.7上完美驱动Realtek RTL8125网卡:完整编译与部署指南

如何在ESXi 6.7上完美驱动Realtek RTL8125网卡:完整编译与部署指南 【免费下载链接】r8125-esxi Realtek RTL8125 driver for ESXi 6.7 项目地址: https://gitcode.com/gh_mirrors/r8/r8125-esxi 想要在VMware ESXi 6.7服务器上使用Realtek RTL8125网卡&…...

别再死记硬背了!用Python+NumPy手动画出OFDM正交子载波,秒懂频分复用原理

用PythonNumPy手绘OFDM正交子载波:从数学公式到动态可视化的沉浸式学习 在通信工程领域,正交频分复用(OFDM)技术如同一位优雅的舞者,在频谱的舞台上展现着精妙的协调性。这种技术不仅是现代4G/5G和Wi-Fi系统的核心,更是理解数字通…...

如何用开源工具实现MobaXterm专业版功能解锁?技术方案与实践指南

如何用开源工具实现MobaXterm专业版功能解锁?技术方案与实践指南 【免费下载链接】MobaXterm-keygen 项目地址: https://gitcode.com/gh_mirrors/moba/MobaXterm-keygen 在远程服务器管理领域,MobaXterm专业版凭借其集成SSH、X11转发、多标签会话…...

生成式视觉开发:用代码创造数字艺术的完整指南

生成式视觉开发:用代码创造数字艺术的完整指南 【免费下载链接】skills 本仓库包含的技能展示了Claude技能系统的潜力。这些技能涵盖从创意应用到技术任务、再到企业工作流。 项目地址: https://gitcode.com/GitHub_Trending/skills3/skills 当设计师面对空白…...

从零理解IEEE 1500:芯片测试工程师必备的核心测试语言(CTL)指南

从零理解IEEE 1500:芯片测试工程师必备的核心测试语言(CTL)指南 在当今高度集成的芯片设计领域,测试工程师面临着前所未有的挑战。随着SoC设计复杂度呈指数级增长,传统的测试方法已无法满足现代芯片验证的需求。IEEE 1500标准应运而生&#x…...

nli-distilroberta-base零基础上手:无需NLP背景,5个示例掌握句子对逻辑判断

nli-distilroberta-base零基础上手:无需NLP背景,5个示例掌握句子对逻辑判断 1. 项目介绍 nli-distilroberta-base是一个基于DistilRoBERTa模型的自然语言推理(NLI)服务,专门用于分析两个句子之间的逻辑关系。即使你完全没有NLP背景&#xf…...

《信息系统项目管理师教程(第4版)》——成本管理知识要点

成本管理知识要点一、成本管理基础概念 项目成本管理是为确保项目在批准预算内完成,对成本进行规划、估算、预算、融资、筹资、管理和控制的过程。其核心目标是平衡成本与价值,既关注项目活动所需资源的成本,也考虑项目决策对产品/服务后续使…...

Cortex-M软件串口库SoftwareSerialM原理与实战

1. SoftwareSerialM 库概述SoftwareSerialM 是一款专为 Cortex-M 系列微控制器设计的软件串口(Software UART)实现库。其核心目标是在硬件 UART 资源受限或已全部占用的嵌入式系统中,通过纯 GPIO 模拟 UART 协议时序,扩展异步串行…...

MPC路径跟踪控制横纵垂向控制:状态空间方程推导之旅

MPC路径跟踪控制横纵垂向控制状态空间方程推导服务,线性化和离散化 采用线性模型预测控制理论,推导离散状态空间方程。在自动驾驶以及许多运动控制领域,MPC(模型预测控制)就像一位运筹帷幄的智者,精准地规划…...

认知雷达前沿技术 从认知到量子:雷达技术的跨范式融合

目录 二、知识图谱解析 关键概念关联说明 三、章节结构层级 四、概念关联与技术成熟度分析 五、核心学术观点提炼 六、关键术语中英对照表 本章探讨了认知雷达(Cognitive Radar)与量子雷达(Quantum Radar)的融合路径,构建了一个从生物启发到量子极限的雷达技术演进框架。…...

硬件可调PWM

纯硬件实现固定频率和占空可调 如图所示:O2构成固定频率多谐振荡器。f 1/2R4C4 (近似) R4改为电位器可以变成变频多谐振荡器, O1构成电压比较器,反相端取电容端电压(近似三角波)与同相端比较,最终输出频率固定占空比受R1控制的PWM波。...

Windows下Python虚拟环境激活报错?一招搞定PowerShell脚本执行权限问题

Windows下Python虚拟环境激活报错?一招搞定PowerShell脚本执行权限问题 在Windows平台上使用Python虚拟环境时,许多开发者都遇到过这样的报错信息:"无法加载文件 venv\Scripts\Activate.ps1,因为在此系统上禁止运行脚本"…...

Qwen3-0.6B-FP8辅助计算机组成原理教学:概念解释与习题辅导

Qwen3-0.6B-FP8辅助计算机组成原理教学:概念解释与习题辅导 计算机组成原理这门课,很多同学一听到就有点头疼。流水线、缓存一致性、指令周期……这些概念听起来就抽象,课本上的解释又常常是长篇大论,看几遍还是云里雾里。自己做…...

Qwen3-4B-Thinking-2507:轻量级AI推理模型的3大突破性技术革命

Qwen3-4B-Thinking-2507:轻量级AI推理模型的3大突破性技术革命 【免费下载链接】Qwen3-4B-Thinking-2507-GGUF 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/Qwen3-4B-Thinking-2507-GGUF 在AI模型参数规模持续膨胀的今天,Qwen3-4B-Thi…...

MCP服务器本地数据库连接器接入实战:从零到稳定连接仅需17分钟,附完整CLI脚本与避坑清单

第一章:MCP服务器本地数据库连接器接入实战:从零到稳定连接仅需17分钟,附完整CLI脚本与避坑清单环境准备与依赖确认 确保目标服务器已安装 PostgreSQL 14 或 MySQL 8.0,并启用本地 socket 连接。验证 psql 或 mysql CLI 工具可执行…...

Cogito-3B应用场景解析:学习编程、代码调试、算法验证全搞定

Cogito-3B应用场景解析:学习编程、代码调试、算法验证全搞定 今天我要介绍一个让编程学习者和开发者眼前一亮的AI工具——Cogito-3B。这个只有30亿参数的"小个子"模型,在代码生成和理解方面展现出了超乎寻常的能力。无论你是编程新手还是经验…...

零基础入门:ComfyUI工作流详解,手把手教你修复泛黄老照片

零基础入门:ComfyUI工作流详解,手把手教你修复泛黄老照片 翻开泛黄的老照片,那些模糊的轮廓和褪色的记忆总让人心生遗憾。如今,借助ComfyUI这一强大的AI工具,即使没有任何技术背景,你也能轻松让这些珍贵影像…...

《90%考生不知道的蓝桥杯Web提分秘籍!这本书让我一个月逆袭省一》

《90%考生不知道的蓝桥杯Web提分秘籍!这本书让我一个月逆袭省一》 文章目录 《90%考生不知道的蓝桥杯Web提分秘籍!这本书让我一个月逆袭省一》Part.1为什么蓝桥杯大赛能吸引百万考生?Part.2《Web应用开发竞赛真题实战特训教程 图解版》《程序…...

VSCode远程开发新姿势:用Remote-SSH直连Docker容器(附端口避坑指南)

VSCode远程开发新姿势:用Remote-SSH直连Docker容器(附端口避坑指南) 在云端开发时代,越来越多的工程师选择将开发环境封装在Docker容器中,以实现环境隔离和快速部署。然而,传统的SSH连接方式往往需要在终端…...

别再只盯着Mesh了!聊聊NoC拓扑选型:从Ring、Torus到Fat Tree,你的芯片设计该怎么选?

芯片设计中的NoC拓扑选型实战指南:从Ring到Fat Tree的深度权衡 当你在设计一款高性能芯片时,是否曾为选择合适的片上网络(NoC)拓扑而纠结?面对Ring、Mesh、Torus、Fat Tree等多种选项,每个决策都可能直接影响芯片的性能、功耗和面…...

Qwen3-TTS开源模型落地:图书馆有声读物自动化生产系统架构设计

Qwen3-TTS开源模型落地:图书馆有声读物自动化生产系统架构设计 重要声明:本文仅讨论技术实现方案,所有内容均基于公开技术文档和测试数据,不涉及任何敏感信息或违规内容。 1. 项目背景与需求分析 现代图书馆面临着数字化转型的重…...

Qt实战(五)——高性能图片浏览器的多线程优化

1. 为什么需要多线程优化图片浏览器 当你打开一个包含数百张高清图片的文件夹时,是否遇到过界面卡顿、滚动不流畅的情况?这背后其实是一个经典的性能问题——UI线程被耗时的图片加载操作阻塞了。 在传统的单线程实现中,图片加载、解码、缩略图…...

nlp_structbert_sentence-similarity_chinese-large 效果展示:中文文本相似度计算精准度测评

nlp_structbert_sentence-similarity_chinese-large 效果展示:中文文本相似度计算精准度测评 最近在做一个智能客服的项目,需要判断用户提问和知识库答案的匹配度。试了好几个开源模型,效果总是不太理想,要么把意思完全相反的句子…...

5个智能诊断技巧:如何快速定位开源项目性能瓶颈?

5个智能诊断技巧:如何快速定位开源项目性能瓶颈? 【免费下载链接】klipper Klipper is a 3d-printer firmware 项目地址: https://gitcode.com/GitHub_Trending/kl/klipper 当我们面对开源项目的性能问题时,往往陷入"重启大法&qu…...