只是要处理一个请求? 请求/响应类的工作和短任务用 Edge Functions。Custom Compute 面向需要持续运行的进程。
功能
容器部署
把任何 Docker 镜像交给 InsForge 就能跑起来。可以指向 registry 上已构建好的镜像,也可以上传构建上下文,让 InsForge 用你的Dockerfile 来构建。不需要学习额外的构建流水线。
访问你的项目
容器需要的凭据由你以服务的环境变量形式设置——项目 URL、API key、S3 凭据,取决于这个工作负载用到什么。InsForge 不会替你注入任何东西,因此容器能访问什么完全由你决定。 自托管时,compute 容器默认加入项目自己的网络,所以在容器内postgres:5432 和 postgrest:3000 可以直接按名字解析,和 edge functions 完全一样——不需要绕一圈公网。
资源
内存和 CPU 按服务配置。每个服务运行一个实例;需要多个 worker 就创建多个服务。日志
按容器输出结构化日志,可按服务和时间范围查询。在 dashboard、CLI 或 MCP 里查看,不用kubectl exec 进容器。
Secrets 与环境变量
按服务设置环境变量和 secrets,与 edge function 的 secrets 分开。轮换时不需要重新部署。自托管:启用 compute
在 InsForge Cloud 上 compute 完全托管,你无需配置。自托管时,由你决定容器跑在哪里。目前有两种 provider,在配置好其中一种之前,compute 接口都会返回503 COMPUTE_NOT_CONFIGURED。
- Docker(你自己的宿主机)
- Fly.io
容器跑在运行 InsForge 的同一个 Docker daemon 上,与 InsForge 容器互为兄弟容器。不需要注册任何服务,也没有按容器计费。启用方式是一个明确的动作:把 Docker socket 挂载进 InsForge 容器。compose 文件里已经为此准备好了一行,取消注释即可:这就是全部改动。socket 在 Linux 上是
660 root:docker,在 Docker Desktop 上是 root:root,group id 又因宿主机而异,所以容器会在启动时从 socket 上读出这个 group 并加入,然后再降权到应用用户。无需查询,也无需设置。重启整个 stack。socket 可访问时驱动会自行注册,并输出 Compute provider "docker" ready。可选配置:COMPUTE_PROVIDER 设为 fly、docker 或 off 可以显式指定。
选择服务如何被访问
每个服务选择一种 ingress 模式。有哪些模式取决于 provider,默认值也一样:单机上默认是none,因为大多数 compute——队列 worker、处理器、推理循环——根本不接收入站流量;而 Fly 会给每个 app 一个主机名,因此只提供 host。省略该字段时采用当前 provider 的默认值;请求一个 provider 无法提供的模式时,会被强制改为它支持的模式。
发布的端口默认绑定到
127.0.0.1。用 COMPUTE_BIND_ADDRESS 修改——Docker 自己的默认行为是绑定所有网卡(含 IPv6),在可被公网访问的宿主机上,这等于把容器直接暴露到互联网。
用 COMPUTE_DEFAULT_INGRESS 设置整个部署的默认值。host 模式下 InsForge 只公布主机名,不负责 TLS 终止和流量路由——请像你已经为 dashboard 做的那样,在前面自己跑一个网关(Caddy、Traefik、nginx)。
从源码构建
部署已构建好的镜像不需要额外步骤:用镜像地址创建服务,它就会被拉取并启动。 要让 InsForge 构建你的Dockerfile,先占位服务,再把构建上下文作为 tar 包上传:
Dockerfile 不在上下文根目录,加上 ?dockerfile=docker/Dockerfile;该路径必须留在上下文之内。同一时间只跑一个构建——第二个上传会直接拿到 429,而不会被缓存下来。在 macOS 上打包时请加 --no-xattrs(或 COPYFILE_DISABLE=1):Linux daemon 无法应用的扩展属性会导致整个上下文被拒绝。
平台支持
两种 provider 的差异
向GET /api/metadata 请求 compute 部分——它会报告已配置的 provider 以及各自的能力,让工具不再提供那些会被忽略的选项。
下一步
- 设置 CLI 以链接你的项目(推荐的路径)。
- 如果你只需要请求/响应,请查看 Edge Functions。