Forwarded from Agili
⚡️ 把 GitHub Actions Runner 塞进 Cloudflare Containers,能省钱吗?

有人真跑了一遍:Worker 接收 workflow_job webhook,每个任务启动一个 ephemeral Container,跑完即销毁。冷启动到接单约 11–13 秒,这条链路确实能用。

实测有个挺反直觉的结果:

basic:1/4 vCPU、1 GiB,任务 23 秒,约 $0.00018
lite:1/16 vCPU、256 MiB,任务 74 秒,约 $0.00015

lite 单价低,但慢了 3.2 倍,最终几乎没省钱。真要跑,basic 才是实用下限。

什么时候划算?

私有仓库已经吃完 GitHub 免费额度、手里本来就有 Workers Paid,并且存在大量 lint、通知、轻量测试这类短任务。Cloudflare 按 10ms 计费,GitHub 按分钟向上取整;1000 个 10 秒任务,文章估算约是 $0.08 vs $6

同规格 2 vCPU / 8 GiB 下,Cloudflare 在文中的模型里便宜约 39%–71%。但算上 GitHub 每月免费分钟和 Workers 的 $5 固定费用,总成本要到每月约 4,000–7,000 分钟 才可能反超。

Agili 点评:

这是个很漂亮的 Serverless Runner 实验,但不是 GitHub-hosted runner 的通用平替。

公开仓库直接用 GitHub,免费;普通私有项目没吃完额度,也别折腾。更硬的限制是 不能跑 Docker daemon / 容器构建,官方 Runner 自带的大量工具也得自己装。Self-hosted runner 还要认真处理不可信 PR、密钥和网络隔离,ephemeral 只能减少残留,不能替你消灭供应链风险。

它真正适合的是:短、轻、多、可丢弃 的私有 CI。用 Cloudflare 做 webhook 驱动和按需拉起,这个架构思路比“省几分钱”更有价值。

原文(日文,含完整代码与成本计算):
https://blog.sh1ma.dev/articles/20260720_1_cloudflare_containers_github_self_hosted_runners/ Cloudflare Containersを使ってGitHub Self-hosted runnersを立ててみた