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

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

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

    这个我很早就关注过了,是为了 k8s 生态而生的,太重。
    iminto
        24
    iminto  
    OP
       287 天前 via Android
    我特别讨厌 docker/k8s 生态,隐藏了太多细节,而且很容易导致依赖膨胀的问题。

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

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

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

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