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

人工智障的软件开发-自动流水线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),看看有多少同频道友

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

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# *************************************************************
# *************************************************************
# *************************************************************
用户 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后续为您一一分析。

相关文章:

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

指令接收:「需要自动构建系统」 系统检测:目标开发一个软件已完成代码仓库-轻盈的gitea,开始添加自动流水线 启动应急冷却协议:准备承受Java系应用的资源冲击 核心组件锁定:构建老将军Jenkins(虽然年迈但依…...

数字人技术之LatentSync Win11本地部署

#LatentSync技术原理 字节跳动开源的基于音频条件潜在扩散模型的端到端唇同步框架,基于潜在扩散模型,以音频条件潜在扩散模型为基础,利用 Stable Diffusion 强大能力,直接建模复杂的音频与视觉之间的关系,实现高质量的唇形同步. 从而制作虚拟…...

Llama3.0论文学习笔记: The Llama 3 Herd of Models

1. 写在前面 今天分享Llama3.0的论文,2024.7月来自Meta的Llama团队,2025年1月DeepSeek R1出现之后,其风头显然已经盖住了Llama3,这时候整理Llama3感觉有点赶不上潮流了,但是我还是想整理下Llama3.0,原因是…...

C#学习之数据转换

目录 一、创作说明 二、数据类型之间的转换 1.数据类型之间的转换表格 2.代码示例 三、进制之间的转换 1.进制之间的转换表格 2.代码示例 四、ASCII 编码和字符之间的转换 1.ASCII 编码和字符之间的转换表格 2.代码示例 五、总结 一、创作说明 C#大多数时候都是和各…...

POI 和 EasyExcel

前言 将表格信息导出为Excel表格(导出数)将Excel表格信息录入到数据库(导入数据) 操作Excel目前比较流行的就是 Apache POI 和阿里巴巴的 EasyExcel Apache POI Apache POI 官网:https://poi.apache.org/ HSSF&am…...

分布式光纤传感:为生活编织“感知密网”

分布式光纤测温技术虽以工业场景为核心,但其衍生的安全效益已逐步渗透至日常生活。 分布式光纤测温技术(DTS)作为一种先进的线型温度监测手段,近年来在多个领域展现了其独特的优势。虽然其核心应用场景主要集中在工业、能源和基础…...

Web后端 - Maven管理工具

一 Maven简单介绍 Maven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。 Maven的作用 二 Maven 安装配置 依赖配置 依赖传递 依赖范围 生命周期 注意事项:在同一套生命周期中,当运行后面的阶段时,前面的阶段都…...

聊一聊vue如何实现角色权限的控制的

大家好,我是G探险者。 关于角色与权限控制,通常是分为两大类:一种是菜单权限;一种是操作权限。 菜单权限是指,每个角色对应着可以看到哪些菜单,至于每个菜单里面的每个按钮,比如增删改查等等这类…...

Java中使用EasyExcel

Java中使用EasyExcel 文章目录 Java中使用EasyExcel一:EasyExcel介绍1.1、核心函数导入数据导出数据 1.2、项目实际应用导入数据导出数据 1.3、相关注解ExcelProperty作用示例 二:EasyExcel使用2.1、导入功能2.2、导出功能 三:EasyExcel完整代…...

LLM:GPT 系列

阅读原文: LLM:Qwen 系列 GPT(Generative Pre-trained Transformer)是生成式预训练语言模型,基于 Transformer 架构,专注于通过自回归的方式生成自然语言文本,即给定一个输入序列 x { x 1 , …...

【已解决】TypeError: AsyncConnectionPool.__init__(), new install bug, httpx==0.24.1

1,参考社区链接,首先降低gradio版本,降低到4以下,但是也不能降太低,也不能太高,要适中,推荐版本3.39.0 pip install gradio3.39.0 2,下载正确的httpx版本 参考社区链接&#xff0…...

Linux:深入了解进程信号(上)

目录 1. 什么是信号 1.1 引入 1.2 概念 1.3 特性 1.4 信号的三个方面 2. 信号的产生 2.1 键盘按键产生 2.2 signal捕捉信号函数 2.3 发送信号原理 2.4 硬件中断 2.5 指令和函数接口 2.5.1 kill指令 2.5.2 kill函数 2.5.3 raise与abort函数 2.6 软件条件 2.7 异…...

Java小白入门基础知识(二)

1.标识符 概念: 在程序中给类,方法,变量取的名称叫做标识符 规范: 字母,数字,下划线,$符号 注意: 不能以数字开头,也不能是关键字,严格区分大小写(一般定义常量就是大写) 软性建议: 1)类名:每个单词首字母大写(大驼峰) 2)方法名:首字母小写,后面每个单词首字母大写(小驼…...

Servlet中,WebServlet注解的使用方法

案例:声明abc接口,在接口内部获取配置信息 WebServlet(urlPatterns"/abc",loadOnStartup6,initParams {WebInitParam(name"username", value"mmm", description"this is username"),WebInitParam(name"a…...

重新出发的LLM本地部署——DeepSeek加持下的Ollama+OpenWebUI快速部署

DeepSeek 这真的是太惊艳了,发布出来的模型这么能打,在线的版本使用起来也是丝滑连招,感觉效果比起之前一直用智谱 chatglm4 更好用,想着本地化部署一下。 本来以为,会和之前在开发测试 transformers 的模型和代码一样…...

【Python爬虫(1)】专栏开篇:夯实Python基础

【Python爬虫】专栏简介:本专栏是 Python 爬虫领域的集大成之作,共 100 章节。从 Python 基础语法、爬虫入门知识讲起,深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑,覆盖网页、图片、音频等各类数据爬取&#xff…...

低代码组态软件-BY组态

引言 在工业4.0与智能制造浪潮的推动下,组态软件作为工业自动化的核心工具,正逐步从传统单机模式向Web化、智能化方向演进。BY组态作为一款基于Web的嵌入式组态插件工具,凭借其低代码、高灵活性和跨平台特性,成为工业物联网&#…...

【计算机网络】数据链路层数据帧(Frame)格式

在计算机网络中,数据帧(Frame) 是数据链路层的协议数据单元(PDU),用于在物理介质上传输数据。数据帧的格式取决于具体的链路层协议(如以太网、PPP、HDLC 等)。以下是常见数据帧格式的…...

[特殊字符] C语言中打开和关闭文件的两种方法:标准库 VS 系统调用

C语言中对文件打开关闭操作 前言方法一:标准输入输出库(stdio.h)—— 高级文件操作的利器打开文件💡 关闭文件:fclose示例代码📝 个人见解 方法一:系统调用(fcntl.h 和 unistd.h&…...

如何将ubuntu下的一个目录,保存目录结构为一个git仓库并上传

目录 1. 初始化本地Git仓库 2. 添加文件到仓库 3. 提交更改 4. 创建并关联远程仓库 5. 推送代码到远程仓库 完整流程总结 要将Ubuntu下的一个目录(例如rpc)保存为一个Git仓库并上传到远程仓库,您可以遵循以下步骤: 1. 初始…...

应用分层、三层架构和MVC架构

前言 在前面中,我们已经学习了Spring MVC 的一些基础操作,那么后面就用一些简单的案例来巩固一下。 在开始学习做案例之前,我们先来了解一下在软件开发中常见的设计模式和架构。 应用分层 含义 应用分层是一种软件开发设计思想&#xff0…...

前端实现防抖功能的详细解读

在前端开发中,防抖(Debounce) 是一种优化技术,用于限制某个函数在短时间内被频繁调用的次数。它的核心思想是:在一定时间内,无论触发多少次事件,只执行最后一次操作。防抖通常用于处理用户输入、…...

VUE3环境搭建

最近准备用Vue编写一点前端页面,我在前端一直是个小白,之前用的Vue2写了几个页面,现在已经是VUE3了,重新安装下环境开始。 1.npm安装 Vue需要用npm安装,npm是nodejs的package manager,这里我们安装下node…...

1-16 tortoiseGit分支与Git操作

1-1 创建分支 什么时候需要开分支? - 隔离线上版本和开发版本 - 大功能开发,不想影响到其他人,自己独立开个分支去开发 SVN经典目录结构: - trunk-------------------------开发中的文件 - bran…...

【VB语言】EXCEL中VB宏的应用

【VB语言】EXCEL中VB宏的应用 文章目录 [TOC](文章目录) 前言一、EXCEL-VB1.实验过程2.代码 二、EXCEL-VB 生成.c.h文件1.实验过程2.代码 四、参考资料总结 前言 1.WPS-VB扩展包 提示:以下是本篇文章正文内容,下面案例可供参考 一、EXCEL-VB 1.实验过…...

前端优化可以从哪些方面下手及优化方案

前端优化是提升网页性能、提升用户体验和降低服务器负担的重要手段。可以从多个角度入手,以下是一些常见的优化方向和方案: 1. 性能优化 减少请求数量:尽量减少页面加载时发起的 HTTP 请求,例如使用合并文件(CSS 和 …...

类和对象(5)——抽象类和接口

目录 1. 抽象类 1.1 抽象类的概念 1.2 抽象类语法:abstract关键字 1.3 抽象类的特性 1.4 抽象类的作用 2. 接口 2.1 接口的概念 2.2 接口语法:interface关键字 2.3 接口的实现:implements关键字 2.4 接口的特性 2.5 实现多个接口 …...

海康摄像头IPV6模式,手动,自动,路由公告

海康摄像头DS-2DC7220IW-A 网络设置中的IPv6配置选项。IPv6是互联网协议(IP)的第六版,用于替代IPv4,提供更多的IP地址和改进的网络功能。图片中的选项允许用户选择如何配置设备的IPv6网络连接: 手动:用户可…...

LabVIEW与USB设备开发

开发一台USB设备并使用LabVIEW进行上位机开发,涉及底层驱动的编写、USB通信协议的实现以及LabVIEW与设备的接口设计。本文将详细介绍如何开发USB设备驱动、实现LabVIEW与USB设备的通信以及优化数据传输,帮助用户顺利完成项目开发。下面是一个详细的说明&…...

BY组态:工业自动化的未来,触手可及

在工业4.0的浪潮下,智能化、数字化已成为制造业发展的核心驱动力。作为工业自动化领域的重要工具,组态软件在实现设备监控、数据采集、流程控制等方面发挥着不可替代的作用。然而,传统的组态软件往往存在开发周期长、学习成本高、灵活性不足等…...

深入理解Python多进程编程 multiprocessing

深入理解Python多进程编程 multiprocessing flyfish Python 的 multiprocessing 模块允许创建多个进程,从而可以利用多核处理器的能力来并行执行任务。这意味着程序的不同部分可以在不同的CPU核心上同时运行,极大地提高了处理效率,特别是在…...

使用DeepSeek建立一个智能聊天机器人0.12

为了确保这段代码能够在Windows和Linux系统上都能正常运行,我考虑以下几个方面: 路径分隔符:在Windows和Linux中,文件路径的分隔符不同。Windows使用反斜杠(\),而Linux使用正斜杠(/)。我们可以使用 os.path.join 来处理路径,以确保跨平台兼容性。 消息框:tkinter.…...

基于VLC的Unity视频播放器(三)

关于UMP插件 UMP插件不更新了,我测试在Ubuntu24.04上编辑器和运行时都无法正常播放,在替换lib之后编辑器可以播放,但打包后不行……很奇怪 继续更新了一下UnityVLC 添加了对Linux的支持,勉强都可以播放了…… Win截图 Ubuntu2…...

每日一题——把数字翻译成字符串

把数字翻译成字符串 题目描述示例示例1示例2 题解动态规划代码实现复杂度分析 总结 题目描述 有一种将字母编码成数字的方式:‘a’->1, ‘b’->2, … , ‘z’->26。 现在给一串数字,返回有多少种可能的译码结果。 数据范围:字符串…...

基于状态观测器和物联网基础设施的智能电网高速孤岛检测

论文标题 中文标题&#xff1a; 基于状态观测器和物联网基础设施的智能电网高速孤岛检测 英文标题&#xff1a; High-Speed Islanding Detection in Smart Grids Using a State Observer and IoT Infrastructure 作者信息 Shahid Karim<sup>1,2, *</sup>, Prajo…...

FPGA的星辰大海

编者按 时下风头正盛的DeepSeek,正值喜好宏大叙事的米国大统领二次上岗就业,OpenAI、软银、甲骨文等宣布投资高达5000亿美元“星际之门”之际,对比尤为强烈。 某种程度上,,是低成本创新理念的直接落地。 包括来自开源社区的诸多赞誉是,并非体现技术有多“超越”,而是…...

【Black Mesa】黑山起源用服务器开服多人联机教程

1、登录服务器&#xff08;百度莱卡云游戏面板&#xff09; 进入控制面板后会出现正在安装的界面&#xff0c;安装大约10分钟&#xff08;如长时间处于安装中请联系我们的客服人员&#xff09; 2、修改端口 看到一下图片的界面时说明服务器已经安装完成&#xff0c;服务器需要…...

【学习笔记】深度学习网络-深度模型中的优化

​ 作者选择了由 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 三位大佬撰写的《Deep Learning》(人工智能领域的经典教程&#xff0c;深度学习领域研究生必读教材),开始深度学习领域学习&#xff0c;深入全面的理解深度学习的理论知识。 在之前的文章中介绍了深度学习中…...

java八股文之Redis

1.Rdis常见的使用场景 缓存分布式锁&#xff08;redision&#xff0c;setnx&#xff09;计数器保存token消息队列延迟队列 2.说明一下缓存雪崩&#xff0c;缓存穿透和缓存击穿以及解决方式 1.缓存雪崩 定义&#xff1a; 缓存雪崩指的是当大量的缓存数据同时失效&#xff0c…...

ubuntu系统下KVM设置桥接网络(失败)

20250216 - 概述 因实验需求&#xff0c;需要设置KVM下的虚拟机采用桥接模式进行通信&#xff0c;这种方式将使虚拟机与主机类似使用同一网段的IP。实际上&#xff0c;为了实现这个功能&#xff0c;我已经在自己mac上VMware使用过&#xff0c;虚拟机获得了自己独立的IP。 但…...

CentOS 7操作系统部署KVM软件和创建虚拟机

CentOS 7.9操作系统部署KVM软件和配置指南&#xff0c;包括如何创建一个虚拟机。 步骤 1: 检查硬件支持 首先&#xff0c;确认您的CPU支持虚拟化技术&#xff0c;并且已在BIOS中启用&#xff1a; egrep -c (vmx|svm) /proc/cpuinfo 如果输出大于0&#xff0c;则表示支持虚拟…...

驱动开发系列38 - Linux Graphics 3D 绘制流程(一)- 创建画布

一:概述 当应用程序创建 OpenGL 上下文时,它通常需要申请帧缓冲(Framebuffer,即画布)。在 X11 体系下,应用程序不会直接向内核的 DRM 模块请求创建帧缓冲,而是通过 X 服务器进行申请。 虽然从技术上讲,应用程序可以直接使用 DRM 接口创建帧缓冲对象(BO),但为了将其与…...

Spring Boot过滤器链:从入门到精通

文章目录 一、过滤器链是什么&#xff1f;二、为什么需要过滤器链&#xff1f;三、Spring Boot中的过滤器链是如何工作的&#xff1f;&#xff08;一&#xff09;过滤器的生命周期&#xff08;二&#xff09;过滤器链的执行流程 四、如何在Spring Boot中定义自己的过滤器&#…...

QT 读写锁

一、概述 1、读写锁是一种线程同步机制&#xff0c;用于解决多线程环境下的读写竞争问题。 2、读写锁允许多个线程同时获取读锁&#xff08;共享访问&#xff09;&#xff0c;但只允许一个线程获取写锁&#xff08;独占访问&#xff09;。 3、这种机制可以提高并发性能&…...

C++中的智能指针

智能指针总结 智能指针其作⽤是管理⼀个指针&#xff0c;避免程序员申请的空间在函数结束时忘记释放&#xff0c;造成内存泄漏这种情况滴发⽣。使⽤智能指针可以很⼤程度上的避免这个问题&#xff0c;因为智能指针就是⼀个类&#xff0c;当超出了类的作⽤域是&#xff0c;类会…...

IntelliJ IDEA 接入 AI 编程助手(Copilot、DeepSeek、GPT-4o Mini)

IntelliJ IDEA 接入 AI 编程助手&#xff08;Copilot、DeepSeek、GPT-4o Mini&#xff09; &#x1f4ca; 引言 近年来&#xff0c;AI 编程助手已成为开发者的高效工具&#xff0c;它们可以加速代码编写、优化代码结构&#xff0c;并提供智能提示。本文介绍如何在 IntelliJ I…...

【R语言】非参数检验

一、Mann-Whitney检验 在R语言中&#xff0c;Mann-Whitney U检验&#xff08;也称为Wilcoxon秩和检验&#xff09;用于比较两个独立样本的中位数是否存在显著差异。它是一种非参数检验&#xff0c;适用于数据不满足正态分布假设的情况。 1、独立样本 # 创建两个独立样本数据…...

PyTorch 源码学习:阅读经验 代码结构

分享自己在学习 PyTorch 源码时阅读过的资料。本文重点关注阅读 PyTorch 源码的经验和 PyTorch 的代码结构。因为 PyTorch 不同版本的源码实现有所不同&#xff0c;所以笔者在整理资料时尽可能按版本号升序&#xff0c;版本号见标题前[]。最新版本的源码实现还请查看 PyTorch 仓…...

04运维实用篇(D4_日志)

目录 一、简介 二、代码中使用日志工具记录日志 1. 操作步骤 步骤1&#xff1a;添加日志记录操作 步骤2&#xff1a;设置日志输出级别 步骤3&#xff1a;设置日志组 2. 知识小结 三、优化日志对象创建代码 1. 实例 2. 总结 四、日志输出格式控制 1. 实例 2. 总结 …...

Linux文件管理:硬链接与软链接

文章目录 1. 硬链接的设计目的&#xff08;1&#xff09;节省存储空间&#xff08;2&#xff09;提高文件管理效率&#xff08;3&#xff09;数据持久性&#xff08;4&#xff09;文件系统的自然特性 2. 软链接的设计目的**&#xff08;1&#xff09;跨文件系统引用****&#x…...