Vercel Functions は、プロジェクト直下の Dockerfile.vercel(または Containerfile.vercel)から OCI 互換コンテナをビルドし、Vercel Container Registry に格納したうえで Fluid compute 上へ配備できる。Go、Rails、Spring Boot、nginx 背後の静的配信など、HTTP を話し $PORT(既定は 80)を待つサーバを、既存のプレビュー URL・ログ・ルーティング・オートスケールのまま載せたい利用者向けである。

要点は次のとおり。

  • 起動条件: イメージは HTTP サーバを開き、$PORT で待ち受ける。言語やフレームワークの自動検出は不要で、FFmpeg や Chromium などシステムライブラリが要る構成も同じ経路で扱える。
  • デプロイ: vercel deploy または Git 連携の push でイメージをビルドし、コミットごとにプレビュー URL が付く。ローカル検証は vercel dev で行い、その場合はマシン上に Docker CLI とデーモンが必要である。
  • 実行特性: ビルド時に最適化した boot image を用意し、起動時はスナップショットをストリーム解凍するため、イメージ全体の取得完了を待たずにリクエスト処理を始められる。インスタンスはステートレスで、永続状態は Marketplace の DB やキャッシュなど外部に置く。
  • スケールと課金: トラフィックに応じて増減し、アイドル時は縮小する。本番は 5 分、プレビューは 30 秒リクエストが無いと scale down し、終了時は SIGTERM のあと 30 秒の猶予がある。課金は Vercel Functions と同じ Active CPU モデルで、コードが実際に CPU を使っている時間だけが対象である。
  • 複数サービス: 同一プロジェクト内では vercel.jsonservicesrewrites でフロントとバックエンドなど複数コンテナを振り分けられる。各サービスは entrypoint に Dockerfile パスを指定する。
  • 未対応: Secure Compute と Static IPs はカスタムコンテナイメージではまだ使えない。
docker
FROM golang:1.26-alpine AS build
WORKDIR /src
COPY . .
RUN go build -o /server main.go

FROM alpine:3.22
COPY --from=build /server /server
CMD ["/server"]

#参考文献