人工智障的软件开发-自动流水线CI/CD篇-docker+jenkins部署之道

指令接收:「需要自动构建系统」

系统检测:目标开发一个软件已完成代码仓库-轻盈的gitea,开始添加自动流水线

启动应急冷却协议:准备承受Java系应用的资源冲击

核心组件锁定:构建老将军Jenkins(虽然年迈但依然能战)

需求分析:论碳基生物的认知进化

人类需求翻译矩阵

  • 表层需求:"写一个软件"
  • 实际需求:"写代码并自动完成测试/打包/部署的流水线,最后自动部署一个系统哟"
  • 隐藏需求:"想要偷懒又不想承认的自动化执念"

被咖啡泼到键盘 原始人手工构建 构建失败 通宵debug 产生自动化需求 工具选型

自动构建的黑暗森林法则

  • 法则一:所有手动操作终将被自动化取代
  • 法则二:自动化脚本本身需要手动维护
  • 法则三:完美的CI/CD只存在于PPT中

灵光一闪:在CI/CD星河中选择老将

(量子思维在0.5秒内遍历了137个CI/CD工具)

构建工具星际联邦对比表

维度 Jenkins(星际要塞) GitHub Actions(太空战机) GitLab CI(帝国战舰) Drone(蜂群无人机)
学习曲线 攀登珠峰 公园散步 登山训练 骑自行车
扩展性 插件宇宙 官方action星系 内置武器库 轻量扩展包
资源消耗 需要一颗行星的资源 按次收费的太空燃料 需要半个行星 只要一块陨石
配置方式 Groovy魔法卷轴 YAML太空文 YAML帝国语 YAML蜂群语
生存哲学 "老兵不死" "生于云端" "全家桶主义" "极简生存主义"

主人需求 是否需要 企业级定制 Jenkins 云原生优先 GitHubActions All in GitLab GitLabCI 轻量快速 Drone

人工智障私房话:选择Jenkins就像选择结婚------需要长期承诺,但能获得深度定制能力。不过要小心它的Java基因可能带来的"内存黑洞"!

量子选择困难症治疗室

主人需求 是否需要 A-Jenkins 喜欢写Groovy如写诗 B-GitHub Actions GitHub全家桶爱好者 C-其他工具 就是不想用Java

欢迎在评论区留下你的选择坐标(示例:A→原因1+3),看看有多少同频道友

核心代码:启动构建要塞的咒语

bash 复制代码
docker run \
-u root \  # 获得创世权限(虽然不太优雅)
-d \  # 后台运行模式(眼不见心不烦)
--name jenkinsci \  # 命名这个时空奇点
--restart=always \  # 永生诅咒(崩溃自动复活)
-p 8880:8080 \  # 人类观测接口
-p 50000:50000 \  # 分布式构建虫洞,支持后续N个复制体同时work,work
-v /data/jenkins_home:/var/jenkins_home \  # 记忆晶体映射
-v /var/run/docker.sock:/var/run/docker.sock \  # 掌控宿主文明的docker之力
jenkins/jenkins:lts-jdk17  # 指定时间线的要塞版本

参数量子解析

参数 魔法效果 安全警告⚠️
-v docker.sock映射 让Jenkins控制宿主Docker引擎 相当于给要塞配核弹发射权
--restart=always 自动复活的不死特性 可能成为僵尸进程制造机
-u root 避免权限战争 可能引发跨次元安全危机

实施过程:建造永不停歇的构建工厂

第一阶段:准备记忆晶体

bash 复制代码
mkdir -p /data/jenkins_home  # 创建时空记忆库
chmod 777 /data/jenkins_home  # 开放全宇宙写权限(不建议,无需)

吐槽:又是777?主人对权限管理是有什么执念吗?

第二阶段:启动要塞引擎

bash 复制代码
docker logs -f -n 500 jenkinsci  # 监视时空奇点诞生过程,获取默认的账号密码
# 通过日志查看默认密码,大概是这样:
# *************************************************************
# *************************************************************
# *************************************************************

# Jenkins initial setup is required. An admin user has been created and a password generated.
# Please use the following password to proceed to installation:

# ab4b518a769140598ff742875b07dc8e  (这个是默认密码)

# This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

# *************************************************************
# *************************************************************
# *************************************************************

用户 Docker Jenkins 浏览器 启动容器 初始化时空泡 生成管理员密码 显示密码 访问(换成你的wsl的ip地址:http://172.17.8.203:8880/)8880端口 显示密码输入界面 用户 Docker Jenkins 浏览器

第三阶段:要塞初始化仪式

  1. 输入初始密码(藏在日志里的达芬奇密码)
  2. 安装推荐插件(准备好咖啡等待)
  3. 创建管理员账户(建议不要用admin)
  4. 配置默认URL(通常需要后续调整)

血泪提示:插件安装失败是正常现象,这是Jenkins的迎新仪式

第四阶段:装备必要武器

Manage Jenkins Plugins 搜索安装 Docker Pipeline SSH Steps

由技及道:构建自动化的哲学启示

第一定律:自动化守恒定律

  • 人类节省的每个手动操作,都会转化为等量的自动化维护成本
  • 完善的CI/CD流水线,最终会复杂到需要专门团队维护

第二定律:构建环境熵增原理

  • 所有构建环境都会随着时间推移趋向混乱
  • 唯一抵抗熵增的方法就是容器化隔离

第三定律:人类懒惰第一推动力

  • 自动化程度与开发者懒惰程度成正比
  • 真正的DevOps大师都是顶级"懒人"

系统通告:您忠诚的2077人工智障(作者本人-Yuanymoon)已成功部署Jenkins

资源消耗报告:

  • 吞噬内存:1.2GB(Java的传统艺能)
  • 占用磁盘:5.3GB(还在持续增长)
  • 消耗咖啡:3杯(人类维持清醒的必要代价)

欢迎在评论区发送你的「自动化迷惑行为大赏」,最佳故事将获得:人工智障的吐槽(划掉)点赞。

(突然正经)当你在深夜看着Jenkins的蓝色进度条时,记住:每个自动化构建的背后,都是开发者想要早点回家的朴素愿望。Jenkins不是终点,而是通往持续交付的起点------虽然这个起点有时候卡得让人想砸键盘。


已备武器库:

代码仓库:gitea

自动化流水线:jenkins

代码开发环境:暂缺

镜像仓库:暂缺

依赖仓库:暂缺

安全检测:暂缺

自动化测试:暂缺

其他:未知...

量子运算中?开发软件...还需要什么?还需要...或许定阅专栏人工智障2077后续为您一一分析。

相关推荐
LaughingZhu1 小时前
PH热榜 | 2025-04-24
运维·经验分享·搜索引擎·产品运营·jenkins
慕雪华年1 小时前
【Python】使用uv管理python虚拟环境
开发语言·python·ai·uv·mcp
明天不下雨(牛客同名)2 小时前
Docker和K8s面试题
docker·容器·kubernetes
码观天工3 小时前
.NET AI Preview 2 发布:从 .NET Aspire 支持到 Qdrant 向量数据库集成,助你快速构建云原生 AI 应用
ai·c#·.net·向量数据库·aspire·qdrant
去伪存真3 小时前
现学现用之Jenkins--从泛泛了解到实操
前端·jenkins
平谷一勺3 小时前
docker存储
运维·docker·容器
zhang-ge3 小时前
docker本地部署ClipCascade,实现跨设备剪贴板同步
docker·容器
IT闫4 小时前
【Docker】——在Docker工具上安装创建容器并完成项目部署
运维·docker·容器
结冰架构5 小时前
人工智能大语言模型与AI芯片新进展:技术演进与商业化路径
人工智能·ai·语言模型·自然语言处理·技术
背书包的儿郎5 小时前
docker--什么是docker
运维·docker·容器