`supabase start` waits about 10 seconds for Docker's first health check after services are ready
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 70/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- docker, typescript
調査の方向性
Start by reading StartHealthcheckSpec and docker-create-args.ts, the two locations named in the issue, and check how Docker Engine versions are handled. Verify how health-check options are passed for auth, realtime, storage, and kong. Done means supported engines use a 1-second start interval while retaining the 10-second steady-state interval, and older engines omit the flag.
索引モデルが issue の本文から書いたものです。
説明
Existing issues
- I have searched the existing issues.
Affected area
Local development
Problem to solve
supabase start finishes about 10 seconds after every service is ready, because it waits for Docker's first health check and Docker runs that one full interval after the container starts.
auth, realtime, storage and kong use --health-interval 10s with no start interval. The CLI polls every second, but the container reports starting until the first check runs.
Timings from supabase start restarting an existing project, on 3.0.0-beta.17, Docker 29.8.1 and WSL2. I ran each container's own health check command inside it every 0.3 s to see when it first passed:
| Container | Created | Health check first passes | Docker's first health check |
|---|---|---|---|
| db | 0.7 s | 0.7 s | ~10.8 s |
| kong | 1.3 s | 1.8 s | ~11.6 s |
| auth | 1.5 s | 1.6 s | ~11.8 s |
| realtime | 1.7 s | 4.1 s | ~12.0 s |
| storage | 2.0 s | 3.0 s | ~12.1 s |
The command exited at 13.9 s, with everything passing by 4.1 s. This is one run with studio,imgproxy,vector,logflare,edge-runtime,postgres-meta,supavisor,mailpit,postgrest excluded. A first start with an empty volume showed the same gap (54.1 s and 63.8 s, including image pulls).
--ignore-health-check doesn't skip the wait.
Proposed solution
Pass Docker's --health-start-interval (for example 1s) with --health-start-period on these services, so the first checks run soon after start while the steady-state interval stays at 10 seconds. StartHealthcheckSpec and docker-create-args.ts would each need one new field.
The flag needs Docker Engine 25 or later (API 1.44), so older engines would need it left out. I haven't tested other container runtimes.
Alternatives considered
Lowering intervalSeconds is simpler and works on every engine, but it keeps running the checks at that rate for the life of the stack.
Additional context
Postgres already moved to a connection from the host in #7362, which took about 10 seconds off a restart compared with 2.122.0 (23.5 s in the same test). This is the remaining part of the same wait.
Happy to open the PR if this gets the open-for-contribution label.
This was written by Opus 5.5.
- 主要言語
- TypeScript
- スター
- 2.4k
- フォーク
- 540
- 平均マージ
- 17時間 29分
- マージ済み PR(30日)
- 387
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
supabase/cli のほかの issue
-
db schema declarative sync: no way to fail (non-zero exit) when the generated migration is destructive再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープン✨ Feature supabase/cli
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
メンテナーはふだん 1 日以内に返信
-
🐛 Bug supabase/cli
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
メンテナーはふだん 1 日以内に返信
-
stack: every Edge Function request starts a new worker, so the same function never reuses one and each call pays a cold start対応中かも @7ttp が 4 日前に担当しました。 オープン🐛 Bug supabase/cli
難易度 3/5 1〜2日 初心者へのやさしさ 58/100
メンテナーはふだん 1 日以内に返信
-
🐛 Bug supabase/cli
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
supabase/cli#7269 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Explicit local function bundling falls back to API bundling when Docker is unavailable対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン🐛 Bug open-for-contribution supabase/cli
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
Northeastern-Electric-Racing/FinishLine#4660 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
excaliburjs/Excalibur#3895 ·
メンテナーはふだん 3 日以内に返信
-
infer_audio_type only recognises one MPEG Layer III frame header, so most MP3 files are rejected対応中かも @Steve-20-ai が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
Earn report crashes with "RangeError: Invalid time value" when a report row has an unparsable timestamp対応中かも @Gurkaran18 が今日担当しました。 オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
joinmarket-webui/jam#1588 ·
メンテナーはふだん 3 日以内に返信
-
BeOS .json missingオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
mihaip/infinite-mac#475 ·