一人公司别再上 Jenkins,真不值
大家好我是凌览。个人网站blog.code24.top去水印下载鸭nologo.code24.top 想存个视频、图片却要被水印糊脸试试这个登录都不用如果本文能给你提供启发或帮助欢迎动动小手指一键三连点赞、评论、转发给我一些支持和鼓励谢谢。Jenkins 是个开源的持续集成工具界面好用操作也简单项目开发里用得特别多。能自动化搞构建、测试、部署确实挺牛逼的。但你要是一人公司不建议用原因有二运维太费劲你一个人身兼产品、开发、运营、推广……什么活都得干。Jenkins 不是装完就完事的——插件冲突、磁盘爆满、升个级流水线直接崩。一个人搞这些时间全耗进去了。太重了至少 4G 内存、几十 G 硬盘才能跑顺。每个月花几十块服务器钱就为了跑个自动部署不值当。所以我的建议很简单除非你团队多人、流水线复杂到非 Jenkins 不可否则别碰它。一人公司的核心是活下去、跑得快不是伺候工具。那如何部署呢我是这样做的——用本地自动化脚本替代Jenkins第一步本地打包推送远程首先装个 Docker把项目 Docker 化。比如去水印下载鸭就是用 Docker 部署的。前、后端全部打包进入一个镜像。Dockerfile文件FROM node:24-slim ENV TZAsia/Shanghai WORKDIR /app COPY package*.json ./ RUN npm config set registry https://registry.npmmirror.com/ npm install --omitdev --verbose COPY .env ./ COPY server/ server/ COPY front-end/ front-end/ VOLUME [/app/server/db, /app/logs, /app/ssl] EXPOSE 3000 3443 CMD [npm, start]然后执行打包命令dockerbuildx build--platformlinux/amd64-t镜像名--push.为什么要指定--platform linux/amd64因为本地电脑一般是 Windows 或 macOS线上服务器跑的是 Linux。不指定的话Docker 按本机架构打包传到服务器上就起不来了。--push .就是把镜像推到远程仓库。远程仓库我用的是阿某云的容器镜像服务个人版免费至于怎么配置推送到阿里云的容器镜像服务官方文档写得很清楚跟着走一遍就行。推送成功后你在任何一台机器上都能docker pull xxx把镜像拉下来跑。第二步本地连接服务器ssh2是一个 Node.js 工具包专门用来连远程服务器。连上之后把docker run命令丢给它它就能帮你在服务器上跑起来。const { Client } require(ssh2); require(dotenv).config(); const cfg { ssh: { host: process.env.DEPLOY_HOST, port: 22, username: root, password: process.env.DEPLOY_PASSWORD, }, docker: { name: my-app, image: registry.cn-hangzhou.aliyuncs.com/my-project/my-app:latest, port: 80:3000, }, }; const conn new Client(); conn.on(ready, () { console.log(连上服务器了开始部署...); conn.exec(docker pull cfg.docker.image, (err, stream) { if (err) throw err; stream.on(close, () { conn.exec(docker rm -f cfg.docker.name || true, () { conn.exec( docker run -d --name cfg.docker.name -p cfg.docker.port --restarton-failure:4 cfg.docker.image, () { console.log(部署完成); conn.end(); } ); }); }); }); }); conn.connect(cfg.ssh);上面这段是伪代码直接让 AI 帮你写就行放这里只是演示一下思路。一个简简单单的自动化部署就成了对一人公司来说完全够用。总结回过头来看这套方案其实就干了两件事本地打包镜像推到阿某云镜像仓库写个脚本连服务器把镜像拉下来跑起来没有 Jenkins不用搞什么插件、权限、流水线配置。一个Dockerfile加一个部署脚本就把 CI/CD 的核心流程跑通了。这就是一人公司的优势——不需要一个庞大的系统来解决一个小问题。Jenkins 很好但不是每个项目都需要它。如果你的团队只有你一个人项目也没复杂到需要几十个构建节点那完全没必要给自己加负担。工具是拿来用的不是拿来伺候的。够用就好。