人工智障的软件开发-自动流水线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后续为您一一分析。

相关推荐
Martin_Yelvin1 小时前
记录一个Circle CI出现的错误
开发语言·前端·ci/cd
码农阿豪1 小时前
媲美Deepseek R1 671B的千问QwQ32B本地部署与远程访问实测流程
ai·部署·deepseek
me8321 小时前
【Linux docker】关于Docker 守护程序配置远程访问,安全认证以及idea连接。
linux·安全·docker
笑远2 小时前
AWS容器化部署指南
docker·容器·aws
me8322 小时前
【Linux docker 容器】关于想要让虚拟机在开机时候也docker自己启动,容器也自己启动,省去要自己开docker和容器
java·linux·docker·云原生·eureka
m0_748229993 小时前
Spring Boot(十六):使用 Jenkins 部署 Spring Boot
spring boot·后端·jenkins
nukix4 小时前
Docker Compose 部署 steamcmd 安装奈斯服务端
java·服务器·docker
裁二尺秋风4 小时前
CI/CD—Jenkins配置Maven+GitLab自动构建jar包
ci/cd·jenkins·maven
法号:吃肉5 小时前
语音识别-FunASR-docker部署-【超简洁步骤】
人工智能·docker·语音识别
敏捷利齐5 小时前
docker不停机部署
运维·docker·容器