在单服务器搭最小规模的 CICD 的技术栈是什么

2024-11-02 17:23:06 +08:00
 importmeta

搞了个应用, 有前端, Node 后端, Redis, Postgres, Nginx, Grafana Loki Promtail.

用 Docker Compose 启动了一下, 每次发现改点代码都要手动把文件传上去构建镜像, 老麻烦了.

一看阿里云容器镜像服务, 收费还很贵, 不适合我.

谢谢了.

11582 次点击
所在节点    DevOps
67 条回复
XuHuan1025
2024-11-02 21:32:19 +08:00
@XiLingHost #10
```
chmod -R 777
```
XuHuan1025
2024-11-02 21:33:53 +08:00
兄弟们 问题来了 内网怎么 ci/cd 用的 jenkins-nexus-docker 导包啥的真恶心啊
jeesk
2024-11-02 21:36:42 +08:00
啥项目? 个人项目,直接本地构建, 公司项目, 当然是 jenkins , 舍得花钱直接买付费的 ci 就行了
iminto
2024-11-02 21:41:36 +08:00
当有人说 jenkins 多 low 多古董的话,你就可以跟他说 "少年 你对力量 一无所知"

jenkins 之外,皆是歪门邪道。

要么依赖 docker ,让环境部署变得异常复杂,要么功能和概念过于复杂。

你说依赖 docker ,首先 docker 在中国大陆就很难下载,就算解决了网络问题,还得配离线仓库,把问题搞那么复杂。

jenkins 就是一个 war 包,傻瓜式部署,简单到不能再简单。
KagurazakaNyaa
2024-11-02 21:51:50 +08:00
@iminto 建议多用用,Jenkins 光是各种插件依赖要管理起来就很麻烦了,到时候照样要走梯子
纯写 ssh 又要管理脚本,然后你 pipeline 是不是还要额外的仓库来存储,凭据怎么管理,是不是要做统一身份认证,要不要和 git 服务做整合
还有你怎么处理 workspace 的环境干净,最后还不是要引入容器化甚至虚拟化确保构建可重复性?
然后你要事件触发是不是还要额外配置 Jenkins 项目里的轮询,每次改构建流程和参数是不是要改 3 个地方,一个是项目本身的代码,一个是 pipeline 的 jenkinsfile ,然后还要在界面上配置 job 的参数修改和触发时机,这不是引入了更多的复杂度?
KagurazakaNyaa
2024-11-02 21:55:29 +08:00
@iminto Jenkins 确实很好用,功能也很强大,在某些特定的场景下是最佳的选择(比如你要传递很多复杂的参数并且需要界面跟随你的选择调整可选择的参数),但是并不能覆盖所有的场景,比如本主题提到的“单服务器最小规模 CI/CD”,Jenkins 的资源消耗并不低,同时它的部署和管理以及使用也没有想象中的那么简单和方便,要实现和 GitHub Action 一样的便利性还是有相当的差距。
wangee
2024-11-02 21:56:19 +08:00
如果现有的代码可以依托于 Gitea 的话,Gitea + Gitea Runner 足够了,如果喜欢 GitLab CI/CD 的语法,可以用 DroneCI 。

如果现在的代码在 GitLab 上,那么 GitLab Runner 或者 DroneCI 都不错。
esee
2024-11-02 23:09:56 +08:00
以前也配置一套流程,后来发现我们用不到那么复杂的流程,自己写个 shell 脚本,远端程序备份,本地编译,打包压缩上传,解压后上线运行。就结束了。
lgh
2024-11-03 00:20:02 +08:00
可以试试 caprover ,底层是 docker swarm
echo0x000001
2024-11-03 00:49:07 +08:00
阿里的 docker 服务不是有免费的吗
echo0x000001
2024-11-03 00:52:12 +08:00
看了下阿里的容器服务个人版,300 个免费仓库,完全够用了
Trim21
2024-11-03 01:06:36 +08:00
最简单/简陋的办法是用 gitea 的 hooks
cctv6
2024-11-03 01:30:34 +08:00
单服务器,并且就一个前端+后端的应用,我觉得没必要再单独整个 cicd 服务。

如果你的诉求只是 “每次发现改点代码都要手动把文件传上去构建镜像, 老麻烦了.”

那你可能缺的是代码 push 后,配置触发自动构建,这个基本上常见的代码托管平台都支持 webhook 。

要说最小规模的,手写个脚本应该是最快最简单的成本最低的方法。
devopsdogdog
2024-11-03 03:03:26 +08:00
从运维或者架构角度,你这做法就不对吧。
1. 镜像和代码产物应该分开,减少编译和进行版本控制,环境代码解耦
2. 为啥不考虑挂载。。。
darrh00
2024-11-03 03:22:06 +08:00
gitea+act runner
amlee
2024-11-03 03:45:59 +08:00
dokploy 就够了
mayli
2024-11-03 04:29:17 +08:00
最小的大概 cronjob git pull
james122333
2024-11-03 06:51:01 +08:00
@iminto

现在每个上层应用都是过于复杂的 gitlab jenkins 或其它有的没的都是 命令行才是直觉暴力的工具 基本教义才是最直面问题的
muxinqi
2024-11-03 07:34:23 +08:00
JustDoIt221
2024-11-03 08:15:01 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1086033

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX