
CentOS8 Docker 部署 Jenkins拉取Gitea代码构建Docker 启动 JenkinsJenkins 初始化配置页面介绍配置全局工具(Git、JDK 等)凭证配置新建 Jenkins 任务两种常用类型类型 1自由风格项目类型 2Pipeline 流水线手动构建webhook自动触发构建Docker 启动 Jenkins1. 设置目录权限:# 创建数据目录mkdir-p/data/jenkins# 设置目录权限jenkins容器内部用户uid1000chown-R1000:1000 /data/jenkins2. 从 Docker 镜像仓库下载 Jenkins 长期支持版镜像内置 JDK17docker pull jenkins/jenkins:lts-jdk173. 启动 jenkins 容器dockerrun-d\--namejenkins\--restartalways\-p8081:8080\-p50000:50000\-v/data/jenkins:/var/jenkins_home\-v/var/run/docker.sock:/var/run/docker.sock\jenkins/jenkins:lts-jdk17参数说明-p 8081:8080Jenkins 网页访问端口-p 50000:50000agent 节点通信端口-v /data/jenkins:/var/jenkins_homejenkins 数据持久化-v /var/run/docker.sock:/var/run/docker.sock容器内可以调用宿主机 docker后续构建镜像会用到4. 放行防火墙端口firewall-cmd --add-port8081/tcp--permanentfirewall-cmd --add-port50000/tcp--permanentfirewall-cmd--reload5. 等待启动获取初始管理员密码#容器启动大概 2‑3 分钟dockerlogs jenkins#或者直接读取文件获取初始密码复制输出的一串密码cat/data/jenkins/secrets/initialAdminPassword6. 浏览器访问http://192.168.88.132:8081Jenkins 初始化配置解锁页面粘贴密码 → 选择【安装推荐的插件】等待插件下载安装时间较长不要关闭页面创建管理员账号设置用户名密码记好。实例配置URL 填写http://192.168.88.132:8081/保存完成进入 Jenkins 主页.页面介绍顶部菜单菜单名用途Jenkins图标一键返回 Jenkins 首页放大镜搜索全局搜索框可以搜任务名称、插件、配置项任务多的时候用来快速定位 job⚙️齿轮图标【Manage Jenkins 系统管理】安装插件管理凭据存放 Gitea 账号密码全局工具配置Git、JDK 等系统参数设置人头图标用户菜单点击可以修改当前登录用户密码、查看个人设置、退出登录。右上角小红点提醒标记代表有通知就是前面看到的安全漏洞、版本更新提醒左侧菜单菜单名用途 新建 Item新建自动化任务构建历史保存所有任务每一次执行的记录查看构建日志排查报错构建队列队列中没有构建任务当多个任务同时触发任务会排队等待执行构建执行状态 0/2当前正在运行 0 个任务总共最多可以同时跑 2 个任务点击下拉箭头可以查看 Jenkins 的执行节点agent中间主区域和左侧「新建 Item」功能是配套的菜单名用途Add description右上角添加描述给 Jenkins 首页写备注说明文字不影响任务。欢迎文案这个页面用来展示你创建的所有自动化任务 (job)Create a job创建任务和左侧的【新建 Item】完全一模一样的功能Set up a distributed build分布式构建Set up an agent配置代理节点Configure a cloudk8s 云节点底部菜单栏菜单名用途Jenkins 中文社区链接指向 Jenkins 国内中文交流社区。REST APIJenkins 对外提供的程序接口Jenkins 2.541.3Jenkins 的版本号配置全局工具(Git、JDK 等)【Manage Jenkins】→【Global Tool Configuration】全局工具配置Git一般 Docker 版 Jenkins 自带 git直接选择【Git】名称写git路径默认gitJDKJava 项目需要新增 JDK选择版本自动下载或者填写容器内 JDK 路径前端项目可以不用 JDK。凭证配置公有仓库不用凭证私有仓库必须配置凭证令牌比账号密码好后续改 Gitea 登录密码不会影响 Jenkins 拉代码Jenkins 拉取 Gitea 私有仓库代码需要凭证账号密码 / 令牌左侧 管理 Jenkins【Manage Jenkins】→凭据管理点击 添加凭据【Add Credentials】类型选用户名和密码Username with password范围全局用户名你的 Gitea 账号密码Gitea 密码 / Gitea 访问令牌推荐令牌更安全ID自定义例如gitea-cred任务里要填这个 ID描述Gitea 仓库凭证生成 Gitea 访问令牌Gitea 网页 → 右上角头像 → 设置 → 应用勾选 repo 权限生成令牌复制令牌当密码。新建 Jenkins 任务两种常用类型类型 1自由风格项目首页【New Item】新建任务任务名称比如gitea-demo选择【Freestyle project】自由风格确定① 源码管理Source Code Management选择 GitRepository URLGitea 仓库克隆地址HTTP 地址http://虚拟机IP:3000/用户名/仓库名.git获取Gitea 仓库克隆地址Credentials选择刚才创建的 gitea 凭证Branch Specifier构建哪个分支*/main代表 main 分支② 构建触发器Triggers自动构建对接 Gitea Webhook勾选【GitHub hook trigger for GITScm polling】Gitea 兼容这个触发器作用Gitea 提交代码推送 Webhook 给 Jenkins自动跑构建③ Environment环境配置控制本次构建运行时的环境、变量、特殊规则Delete workspace before build starts每次跑任务前先把上次拉下来的代码全部删掉再重新拉取全新代码Use secret text(s) or file(s)在构建环境注入密钥、密码、Token 这类敏感信息变量形式给脚本使用Inspect build log for published build scans用于 Gradle 等项目的构建性能分析报告普通代码拉取用不上Terminate a build if it’s stuck防止任务卡死一直占用资源比如脚本死循环可以设置超时时间自动杀掉构建。With AntAnt 是 Java 老项目的构建工具在构建日志中添加时间戳前缀日志每一行前面带上时分秒方便排查慢操作④ 构建步骤核心拉完代码后执行的命令源码管理是拉代码Build Steps 就是拉完代码之后要执行哪些操作用有序任务自动构建流程比如代码编译、测试、部署。点击 增加构建步骤【Add build step】【Execute shell】执行 shell 命令Linux 容器示例打印信息测试echo 代码拉取成功 ls -l如果是前端可以写npm install npm run build如果是 Maven Java 项目调用 maven 打包mvn clean package④ 构建后操作可选构建任务跑完之后成功 / 失败自动执行的后续动作。比如打包产物归档、发送邮件通知、部署到服务器目前初学阶段可不添加不选择。选项Aggregate downstream test results:聚合下游项目的测试结果多项目联动才用Publish JUnit test result report:发布 JUnit 单元测试报告代码自动化测试用后端 Java 等项目归档成品Archive the artifacts:把构建出来的文件 / 包保存到 Jenkins构建完可以下载产物构建其他工程: 当前任务跑完自动触发另一个 Jenkins 任务记录文件的指纹用于追踪: 文件版本追踪很少用Git Publisher: 构建完成后把 Jenkins 本地的代码推送回 Gitea/Git 仓库提交代码回仓库E-mail Notification / Editable Email Notification: 邮件通知构建成功 / 失败自动发邮件提醒Set GitHub commit status:给 GitHub 提交记录打状态标成功 / 失败你用的是 Gitea不适用Delete workspace when build is done:构建完成后自动清空工作目录删掉本次拉取的代码点击 Save【保存】类型 2Pipeline 流水线用一份叫Jenkinsfile的文本文件定义 CI 流程拉代码→编译→测试→打包→部署把 Jenkins 配置跟着代码一起存到 Gitea/Git 仓库可以 Git 版本追溯、多人修改、一键迁移是现在企业标准方案。安装插件:Generic Webhook Trigger新增Pipeline流水线任务New Item → 名字 → 选择 流水线【Pipeline】Pipeline 选项在 Gitea 仓库根目录新建 Jenkinsfilepipeline { agent any stages { stage(拉取代码) { steps { git url: http://192.168.122.100:3000/test/demo.git, branch: main } } stage(编译构建) { steps { sh echo 开始构建项目 } } stage(部署) { steps { sh echo 部署完成 } } } }回到仓库界面可看见已添加的文件手动构建配置 Pipeline 流水线任务 打开你的流水线任务gitea-pipeline→ 【配置】→ 找到Triggers构建触发器勾选Generic Webhook TriggerGeneric Webhook Trigger选项配置parameters 参数Token分支过滤流水线这里创建流水线任务时已填好最后点击【保存】Save2. 手动构建测试回到这个流水线任务主页点击【立即构建】绿色太阳图标表示构建成功。等待 SStatus列状态构建完后绿色表示成功红色表示失败黄色表示不稳定编译成功但单元测试失败蓝色三个点表示从未构建过。W 列Weather表示构建天气/健康状态太阳表示全部构建成功多云表示偶尔失败阴天表示失败次数变多下雨表示经常失败雷雨表示几乎每次失败。点击这个构建编号 →【控制台输出】查看日志webhook自动触发构建进入 Gitea 仓库 Webhook 页面前提Jenkins 已经部署好能被 Gitea 访问到Gitea 和 Jenkins 都在同一个局域网进入仓库admin / jenkins_testPro仓库右上角点设置左侧菜单找到Web 钩子Webhooks点击添加 Web 钩子钩子类型选择Gitea后面两项默认就行点击保存可以点【测试推送事件】测试能不能连通 Jenkins。Gitea 的 Webhook 请求成功发到 JenkinsJenkins 也成功接收并校验 token 通过。回到 Jenkins 流水线任务页面看有没有自动触发构建刷新页面看构建历史新增一条构建记录#9