V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
iminto
V2EX  ›  程序员

有不需要 docker,不需要上云的 CI/CD 推荐吗?

  •  
  •   iminto · 2024-03-08 15:32:26 +08:00 · 6897 次点击
    这是一个创建于 370 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有不需要 docker ,内网使用,功能不过分简陋也不死板的的 CI/CD 推荐吗?

    jenkins 永远的神!开源免费,不需要 docker ,支持自由脚本和 pipeline 两种风格,就是界面太丑了,之前公司倒是基于 jenkins 二次开发了一套界面很好看的产品。

    现在的 CI/CD ,要么就是强依赖 docker/k8s 这套生态,要么就是云那一套,无法内网离线使用。

    排除 Bamboo ,Travis CI ,CircleCI 等,找了好久没找到满意的。

    就 GoCD 感觉勉强可以一战。
    38 条回复    2024-09-12 17:47:17 +08:00
    FlytoSirius
        1
    FlytoSirius  
       2024-03-08 15:39:21 +08:00
    那当然首先是考虑 Jenkins 咯.
    但 Jenkins 虽应用最为广泛, 但也确实不那么现代化.
    chendy
        2
    chendy  
       2024-03-08 15:39:54 +08:00
    gitlab-ci ,本地 shell 模式,缺点和 gitlab 绑定
    ceeeeeeeeeeeeeeb
        3
    ceeeeeeeeeeeeeeb  
       2024-03-08 15:44:19 +08:00   ❤️ 1
    任何可以用 Jenkins 实现的 CI/CD 最终都会用 Jenkins 实现--选自《任何可以用 JavaScript 编写的应用程序最终都会用 JavaScript 编写》
    flyingcrp
        4
    flyingcrp  
       2024-03-08 15:58:20 +08:00   ❤️ 1
    好巧不巧, 上午刚看到有个这个东西 https://github.com/earthly/earthly
    sampeng
        5
    sampeng  
       2024-03-08 16:01:51 +08:00
    docker/上云/CICD 。这三者是有关系,又不是强绑定。
    如果你用 gitlab ,gitlab 的 pipeline 也完全够你用
    sampeng
        6
    sampeng  
       2024-03-08 16:03:29 +08:00   ❤️ 1
    但是,为什么要有 docker 。因为线上比线下要便宜。
    竞价实力,jenkins 弹出来的机器自动缩回去。跟白给的一样
    你本地基本达不到无堵塞 CICD 。只有云端无上限机器可以做到。
    wbmins
        7
    wbmins  
       2024-03-08 16:05:07 +08:00
    TeamCity ?
    tangtang369
        8
    tangtang369  
       2024-03-08 16:11:37 +08:00
    gitlab 就行了 jenkins 看那个界面真的不想用
    whileFalse
        9
    whileFalse  
       2024-03-08 16:35:51 +08:00 via Android
    丑怎么了?你要说漏洞多我能理解。开发用的东西你还看颜值?
    chronos
        10
    chronos  
       2024-03-08 16:37:58 +08:00
    jenkins 已经可以了,不过我用 buildbot ,资源占用小,适合我的小 vps 。
    Ayanokouji
        11
    Ayanokouji  
       2024-03-08 16:50:51 +08:00
    @wbmins teamcity +1 ,量小的话,免费的就够用
    pckillers
        12
    pckillers  
       2024-03-08 16:50:53 +08:00   ❤️ 1
    jenkins 不是有 blue ocean 插件来提供美化后的界面么?
    lhyannis
        13
    lhyannis  
       2024-03-08 17:06:34 +08:00
    推荐使用 goploy ,golang+vue 开发的,用了好几年了,感觉比 jenkins 好用而且省资源,可以 docker 部署,也可以二进制部署,开源地址是 https://github.com/zhenorzz/goploy
    ofnh
        14
    ofnh  
       2024-03-08 17:14:09 +08:00
    gitea act runner ,可以用 host 模式,但是你需要自己缓存一部分的 actions 下来
    wu67
        15
    wu67  
       2024-03-08 17:18:26 +08:00
    gitlab 自带那个.
    轻量级别的, drone 搭配 gogs/gitea 用的, 没研究能不能搭配其他平台.
    更轻量级别的, 自己写 node.js api + shell script, 我给公司测试环境搞的自动构建就是这么写的.
    iminto
        16
    iminto  
    OP
       2024-03-08 17:21:15 +08:00
    @flyingcrp 粗略看了下,这个依赖 docker 生态
    iminto
        17
    iminto  
    OP
       2024-03-08 17:23:42 +08:00
    @Ayanokouji 这个是第三方服务的吧,肯定用不了,大部分公司也不可能用别人的服务,而且需要内网使用
    RengeNanon
        18
    RengeNanon  
       2024-03-08 17:43:39 +08:00
    Teamcity 自托管吧
    jurassic2long
        19
    jurassic2long  
       2024-03-08 17:52:56 +08:00
    看系统复杂度吧,如果机器没几台,项目没几个,自己写个脚本实现都够用
    chobitssp
        20
    chobitssp  
       2024-03-08 18:00:43 +08:00
    o562dsRcFqYl375i
        21
    o562dsRcFqYl375i  
       2024-03-08 18:04:14 +08:00
    git pre-commit
    cdlnls
        22
    cdlnls  
       2024-03-08 18:20:12 +08:00
    jenkins 新的 blue ocean 的 UI 还是可以的,嗯,我感觉新版本的 jenkins 的 UI 也不算太差,比前几年的要好看得多。
    iminto
        23
    iminto  
    OP
       2024-03-08 21:19:02 +08:00 via Android
    @chobitssp 这个依赖 docker ,一眼淘汰。

    这个我很早就关注过了,是为了 k8s 生态而生的,太重。
    iminto
        24
    iminto  
    OP
       2024-03-08 21:23:40 +08:00 via Android
    我特别讨厌 docker/k8s 生态,隐藏了太多细节,而且很容易导致依赖膨胀的问题。

    我曾经想基于某些开源项目二次开发,结果人家压根就不提供裸金属包,扔给你一个 docker composet 文件,里面有 11 个 docker 镜像,。。
    RockShake
        25
    RockShake  
       2024-03-08 21:26:17 +08:00
    Blue Ocean UI 还不错吧,关键这种工具构建好了以后基本也用不到界面吧
    gongquanlin
        26
    gongquanlin  
       2024-03-08 21:44:25 +08:00
    自己写了一些 shell ,gitea 收到 events 就发 webhooks ,nc 监听端口,收到指定 http 的 hook 就执行 shell 编译打包部署,简单的很
    chf007
        27
    chf007  
       2024-03-08 22:25:37 +08:00
    没明白 docker 依赖膨胀是啥问题,也可以自已写啊
    renothing
        28
    renothing  
       2024-03-08 23:43:49 +08:00
    可以看看 ovh 的 cds,我觉得不错
    https://github.com/ovh/cds
    Mithril
        29
    Mithril  
       2024-03-09 00:15:52 +08:00   ❤️ 1
    自己装个 TeamCity 就行了,免费的 3 个 Agent ,100 个编译配置。除非你几十个项目,不然差不多也够用了。
    主要是你用了 Jenkins 再去看 TeamCity 就知道差距了,但毕竟是开源,能用就行。

    Jenkins 最麻烦的就是它赖以生存的开原生态。本身功能不多,大部分都靠插件。但开源插件维护全靠爱发电,很多插件早就不维护了。可能你这个版本配置完了都能用,然后过几个版本你发现之前几十个项目依赖的插件不更新了,那你 Jenkins 也没法更新。但 Jenkins 不更新又用不了新的插件。
    整个锁死在里面。

    所以现在都推荐用 Docker 这套生态来做,CI 工具实际就做个调度而已。哪怕你 CI 彻底完蛋,只要你用来编译的镜像还在,换个 CI 重新写个调度配置也一样能跑。

    传统的 CICD 工具基本就这俩推荐,当然你要用 Gitlab 管代码的话,装个 Runner 也能跑。前提是你接受纯配置文件的套路。
    scyuns
        30
    scyuns  
       2024-03-09 00:29:06 +08:00 via Android
    @flyingcrp
    谢谢安利 一眼符合我的口味
    Immortal
        31
    Immortal  
       2024-03-09 01:21:38 +08:00
    @iminto #23 这个哪里依赖 docker 了....可能安装部署可以用 Docker,自己做 CI 根本不需要 Docker,也是配置 shell 脚本
    shinession
        32
    shinession  
       2024-03-09 08:38:44 +08:00
    轻量级 gitea 就行, 不用 docker, 也不用上云
    alsas
        33
    alsas  
       2024-03-09 10:11:49 +08:00
    spug
    defunct9
        34
    defunct9  
       2024-03-09 10:44:39 +08:00
    随便哪家都可以吧,大同小异。给那个就用那个。楼主有选择障碍症吧
    xwwsxp
        35
    xwwsxp  
       2024-03-09 14:00:24 +08:00
    https://tekton.dev 我用的就是这个,不过是基于云原生,Jenkins 可以抛弃了,过时了
    zhenorzz
        36
    zhenorzz  
       2024-03-10 10:29:54 +08:00
    Aibitk
        37
    Aibitk  
       2024-03-10 11:26:01 +08:00
    可以看看这个 spug https://spug.cc/
    Rorysky
        38
    Rorysky  
       182 天前
    @iminto 那你一定喜欢 github actions 开源实现 act ,gitea 也使用的这个
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1167 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:17 · PVG 07:17 · LAX 16:17 · JFK 19:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.