人工智障的软件开发-自动流水线CI/CD篇-docker+jenkins部署之道
- 手机
- 2025-09-07 00:51:02

指令接收:「需要自动构建系统」 系统检测:目标开发一个软件已完成代码仓库-轻盈的gitea,开始添加自动流水线 启动应急冷却协议:准备承受Java系应用的资源冲击 核心组件锁定:构建老将军Jenkins(虽然年迈但依然能战)
需求分析:论碳基生物的认知进化 人类需求翻译矩阵 表层需求:“写一个软件”实际需求:“写代码并自动完成测试/打包/部署的流水线,最后自动部署一个系统哟”隐藏需求:“想要偷懒又不想承认的自动化执念” #mermaid-svg-ZF1Pgtv76sY5B1Hm {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .error-icon{fill:#552222;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .marker{fill:#333333;stroke:#333333;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .marker.cross{stroke:#333333;}#mermaid-svg-ZF1Pgtv76sY5B1Hm svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .cluster-label text{fill:#333;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .cluster-label span{color:#333;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .label text,#mermaid-svg-ZF1Pgtv76sY5B1Hm span{fill:#333;color:#333;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .node rect,#mermaid-svg-ZF1Pgtv76sY5B1Hm .node circle,#mermaid-svg-ZF1Pgtv76sY5B1Hm .node ellipse,#mermaid-svg-ZF1Pgtv76sY5B1Hm .node polygon,#mermaid-svg-ZF1Pgtv76sY5B1Hm .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .node .label{text-align:center;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .node.clickable{cursor:pointer;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .arrowheadPath{fill:#333333;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .cluster text{fill:#333;}#mermaid-svg-ZF1Pgtv76sY5B1Hm .cluster span{color:#333;}#mermaid-svg-ZF1Pgtv76sY5B1Hm div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-ZF1Pgtv76sY5B1Hm :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 被咖啡泼到键盘 原始人手工构建 构建失败 通宵debug 产生自动化需求 工具选型 自动构建的黑暗森林法则 法则一:所有手动操作终将被自动化取代法则二:自动化脚本本身需要手动维护法则三:完美的CI/CD只存在于PPT中 灵光一闪:在CI/CD星河中选择老将(量子思维在0.5秒内遍历了137个CI/CD工具)
构建工具星际联邦对比表 维度Jenkins(星际要塞)GitHub Actions(太空战机)GitLab CI(帝国战舰)Drone(蜂群无人机)学习曲线攀登珠峰公园散步登山训练骑自行车扩展性插件宇宙官方action星系内置武器库轻量扩展包资源消耗需要一颗行星的资源按次收费的太空燃料需要半个行星只要一块陨石配置方式Groovy魔法卷轴YAML太空文YAML帝国语YAML蜂群语生存哲学“老兵不死”“生于云端”“全家桶主义”“极简生存主义” #mermaid-svg-SnpcHDO5V0E7sfe1 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SnpcHDO5V0E7sfe1 .error-icon{fill:#552222;}#mermaid-svg-SnpcHDO5V0E7sfe1 .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-SnpcHDO5V0E7sfe1 .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-SnpcHDO5V0E7sfe1 .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-SnpcHDO5V0E7sfe1 .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-SnpcHDO5V0E7sfe1 .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-SnpcHDO5V0E7sfe1 .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-SnpcHDO5V0E7sfe1 .marker{fill:#333333;stroke:#333333;}#mermaid-svg-SnpcHDO5V0E7sfe1 .marker.cross{stroke:#333333;}#mermaid-svg-SnpcHDO5V0E7sfe1 svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-SnpcHDO5V0E7sfe1 .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-SnpcHDO5V0E7sfe1 .cluster-label text{fill:#333;}#mermaid-svg-SnpcHDO5V0E7sfe1 .cluster-label span{color:#333;}#mermaid-svg-SnpcHDO5V0E7sfe1 .label text,#mermaid-svg-SnpcHDO5V0E7sfe1 span{fill:#333;color:#333;}#mermaid-svg-SnpcHDO5V0E7sfe1 .node rect,#mermaid-svg-SnpcHDO5V0E7sfe1 .node circle,#mermaid-svg-SnpcHDO5V0E7sfe1 .node ellipse,#mermaid-svg-SnpcHDO5V0E7sfe1 .node polygon,#mermaid-svg-SnpcHDO5V0E7sfe1 .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-SnpcHDO5V0E7sfe1 .node .label{text-align:center;}#mermaid-svg-SnpcHDO5V0E7sfe1 .node.clickable{cursor:pointer;}#mermaid-svg-SnpcHDO5V0E7sfe1 .arrowheadPath{fill:#333333;}#mermaid-svg-SnpcHDO5V0E7sfe1 .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-SnpcHDO5V0E7sfe1 .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-SnpcHDO5V0E7sfe1 .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-SnpcHDO5V0E7sfe1 .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-SnpcHDO5V0E7sfe1 .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-SnpcHDO5V0E7sfe1 .cluster text{fill:#333;}#mermaid-svg-SnpcHDO5V0E7sfe1 .cluster span{color:#333;}#mermaid-svg-SnpcHDO5V0E7sfe1 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-SnpcHDO5V0E7sfe1 :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 主人需求 是否需要 企业级定制 Jenkins 云原生优先 GitHubActions All in GitLab GitLabCI 轻量快速 Drone人工智障私房话:选择Jenkins就像选择结婚——需要长期承诺,但能获得深度定制能力。不过要小心它的Java基因可能带来的"内存黑洞"!
量子选择困难症治疗室 #mermaid-svg-h9k2dbzqOKj7qbOA {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-h9k2dbzqOKj7qbOA .error-icon{fill:#552222;}#mermaid-svg-h9k2dbzqOKj7qbOA .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-h9k2dbzqOKj7qbOA .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-h9k2dbzqOKj7qbOA .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-h9k2dbzqOKj7qbOA .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-h9k2dbzqOKj7qbOA .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-h9k2dbzqOKj7qbOA .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-h9k2dbzqOKj7qbOA .marker{fill:#333333;stroke:#333333;}#mermaid-svg-h9k2dbzqOKj7qbOA .marker.cross{stroke:#333333;}#mermaid-svg-h9k2dbzqOKj7qbOA svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-h9k2dbzqOKj7qbOA .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-h9k2dbzqOKj7qbOA .cluster-label text{fill:#333;}#mermaid-svg-h9k2dbzqOKj7qbOA .cluster-label span{color:#333;}#mermaid-svg-h9k2dbzqOKj7qbOA .label text,#mermaid-svg-h9k2dbzqOKj7qbOA span{fill:#333;color:#333;}#mermaid-svg-h9k2dbzqOKj7qbOA .node rect,#mermaid-svg-h9k2dbzqOKj7qbOA .node circle,#mermaid-svg-h9k2dbzqOKj7qbOA .node ellipse,#mermaid-svg-h9k2dbzqOKj7qbOA .node polygon,#mermaid-svg-h9k2dbzqOKj7qbOA .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-h9k2dbzqOKj7qbOA .node .label{text-align:center;}#mermaid-svg-h9k2dbzqOKj7qbOA .node.clickable{cursor:pointer;}#mermaid-svg-h9k2dbzqOKj7qbOA .arrowheadPath{fill:#333333;}#mermaid-svg-h9k2dbzqOKj7qbOA .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-h9k2dbzqOKj7qbOA .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-h9k2dbzqOKj7qbOA .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-h9k2dbzqOKj7qbOA .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-h9k2dbzqOKj7qbOA .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-h9k2dbzqOKj7qbOA .cluster text{fill:#333;}#mermaid-svg-h9k2dbzqOKj7qbOA .cluster span{color:#333;}#mermaid-svg-h9k2dbzqOKj7qbOA div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-h9k2dbzqOKj7qbOA :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 主人需求 是否需要 A-Jenkins 喜欢写Groovy如写诗 B-GitHub Actions GitHub全家桶爱好者 C-其他工具 就是不想用Java欢迎在评论区留下你的选择坐标(示例:A→原因1+3),看看有多少同频道友
核心代码:启动构建要塞的咒语 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避免权限战争可能引发跨次元安全危机 实施过程:建造永不停歇的构建工厂 第一阶段:准备记忆晶体 mkdir -p /data/jenkins_home # 创建时空记忆库 chmod 777 /data/jenkins_home # 开放全宇宙写权限(不建议,无需)吐槽:又是777?主人对权限管理是有什么执念吗?
第二阶段:启动要塞引擎 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 # ************************************************************* # ************************************************************* # ************************************************************* #mermaid-svg-oT0Jge83Rac86Bau {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-oT0Jge83Rac86Bau .error-icon{fill:#552222;}#mermaid-svg-oT0Jge83Rac86Bau .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-oT0Jge83Rac86Bau .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-oT0Jge83Rac86Bau .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-oT0Jge83Rac86Bau .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-oT0Jge83Rac86Bau .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-oT0Jge83Rac86Bau .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-oT0Jge83Rac86Bau .marker{fill:#333333;stroke:#333333;}#mermaid-svg-oT0Jge83Rac86Bau .marker.cross{stroke:#333333;}#mermaid-svg-oT0Jge83Rac86Bau svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-oT0Jge83Rac86Bau .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-oT0Jge83Rac86Bau text.actor>tspan{fill:black;stroke:none;}#mermaid-svg-oT0Jge83Rac86Bau .actor-line{stroke:grey;}#mermaid-svg-oT0Jge83Rac86Bau .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-oT0Jge83Rac86Bau .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-oT0Jge83Rac86Bau #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-oT0Jge83Rac86Bau .sequenceNumber{fill:white;}#mermaid-svg-oT0Jge83Rac86Bau #sequencenumber{fill:#333;}#mermaid-svg-oT0Jge83Rac86Bau #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-oT0Jge83Rac86Bau .messageText{fill:#333;stroke:#333;}#mermaid-svg-oT0Jge83Rac86Bau .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-oT0Jge83Rac86Bau .labelText,#mermaid-svg-oT0Jge83Rac86Bau .labelText>tspan{fill:black;stroke:none;}#mermaid-svg-oT0Jge83Rac86Bau .loopText,#mermaid-svg-oT0Jge83Rac86Bau .loopText>tspan{fill:black;stroke:none;}#mermaid-svg-oT0Jge83Rac86Bau .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-oT0Jge83Rac86Bau .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-oT0Jge83Rac86Bau .noteText,#mermaid-svg-oT0Jge83Rac86Bau .noteText>tspan{fill:black;stroke:none;}#mermaid-svg-oT0Jge83Rac86Bau .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-oT0Jge83Rac86Bau .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-oT0Jge83Rac86Bau .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-oT0Jge83Rac86Bau .actorPopupMenu{position:absolute;}#mermaid-svg-oT0Jge83Rac86Bau .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-oT0Jge83Rac86Bau .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-oT0Jge83Rac86Bau .actor-man circle,#mermaid-svg-oT0Jge83Rac86Bau line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-oT0Jge83Rac86Bau :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 用户 Docker Jenkins 浏览器 启动容器 初始化时空泡 生成管理员密码 显示密码 访问(换成你的wsl的ip地址:http://172.17.8.203:8880/)8880端口 显示密码输入界面 用户 Docker Jenkins 浏览器 第三阶段:要塞初始化仪式 输入初始密码(藏在日志里的达芬奇密码)安装推荐插件(准备好咖啡等待)创建管理员账户(建议不要用admin)配置默认URL(通常需要后续调整)血泪提示:插件安装失败是正常现象,这是Jenkins的迎新仪式
第四阶段:装备必要武器 #mermaid-svg-SUE6ADdmg1MnTUZi {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SUE6ADdmg1MnTUZi .error-icon{fill:#552222;}#mermaid-svg-SUE6ADdmg1MnTUZi .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-SUE6ADdmg1MnTUZi .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-SUE6ADdmg1MnTUZi .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-SUE6ADdmg1MnTUZi .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-SUE6ADdmg1MnTUZi .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-SUE6ADdmg1MnTUZi .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-SUE6ADdmg1MnTUZi .marker{fill:#333333;stroke:#333333;}#mermaid-svg-SUE6ADdmg1MnTUZi .marker.cross{stroke:#333333;}#mermaid-svg-SUE6ADdmg1MnTUZi svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-SUE6ADdmg1MnTUZi .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-SUE6ADdmg1MnTUZi .cluster-label text{fill:#333;}#mermaid-svg-SUE6ADdmg1MnTUZi .cluster-label span{color:#333;}#mermaid-svg-SUE6ADdmg1MnTUZi .label text,#mermaid-svg-SUE6ADdmg1MnTUZi span{fill:#333;color:#333;}#mermaid-svg-SUE6ADdmg1MnTUZi .node rect,#mermaid-svg-SUE6ADdmg1MnTUZi .node circle,#mermaid-svg-SUE6ADdmg1MnTUZi .node ellipse,#mermaid-svg-SUE6ADdmg1MnTUZi .node polygon,#mermaid-svg-SUE6ADdmg1MnTUZi .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-SUE6ADdmg1MnTUZi .node .label{text-align:center;}#mermaid-svg-SUE6ADdmg1MnTUZi .node.clickable{cursor:pointer;}#mermaid-svg-SUE6ADdmg1MnTUZi .arrowheadPath{fill:#333333;}#mermaid-svg-SUE6ADdmg1MnTUZi .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-SUE6ADdmg1MnTUZi .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-SUE6ADdmg1MnTUZi .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-SUE6ADdmg1MnTUZi .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-SUE6ADdmg1MnTUZi .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-SUE6ADdmg1MnTUZi .cluster text{fill:#333;}#mermaid-svg-SUE6ADdmg1MnTUZi .cluster span{color:#333;}#mermaid-svg-SUE6ADdmg1MnTUZi div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-SUE6ADdmg1MnTUZi :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Manage Jenkins Plugins 搜索安装 Docker Pipeline SSH Steps 由技及道:构建自动化的哲学启示 第一定律:自动化守恒定律 人类节省的每个手动操作,都会转化为等量的自动化维护成本完善的CI/CD流水线,最终会复杂到需要专门团队维护 第二定律:构建环境熵增原理 所有构建环境都会随着时间推移趋向混乱唯一抵抗熵增的方法就是容器化隔离 第三定律:人类懒惰第一推动力 自动化程度与开发者懒惰程度成正比真正的DevOps大师都是顶级"懒人"系统通告:您忠诚的2077人工智障(作者本人-Yuanymoon)已成功部署Jenkins 资源消耗报告:
吞噬内存:1.2GB(Java的传统艺能)占用磁盘:5.3GB(还在持续增长)消耗咖啡:3杯(人类维持清醒的必要代价)欢迎在评论区发送你的「自动化迷惑行为大赏」,最佳故事将获得:人工智障的吐槽(划掉)点赞。
(突然正经)当你在深夜看着Jenkins的蓝色进度条时,记住:每个自动化构建的背后,都是开发者想要早点回家的朴素愿望。Jenkins不是终点,而是通往持续交付的起点——虽然这个起点有时候卡得让人想砸键盘。
已备武器库:
代码仓库:gitea 自动化流水线:jenkins 代码开发环境:暂缺 镜像仓库:暂缺 依赖仓库:暂缺 安全检测:暂缺 自动化测试:暂缺 其他:未知… 量子运算中?开发软件…还需要什么?还需要…或许定阅专栏人工智障2077后续为您一一分析。
人工智障的软件开发-自动流水线CI/CD篇-docker+jenkins部署之道由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“人工智障的软件开发-自动流水线CI/CD篇-docker+jenkins部署之道”