`supabase start` waits about 10 seconds for Docker's first health check after services are ready

Chiusa
#7,427 0 commenti 0 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@7ttp ci sta già lavorando.

Dal 31/10/2026.

  • #7430 di @7ttp — integrata

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
70/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
docker, typescript
Ambito
cli, devops

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

🐛 Bug supabase/cli
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.

Lingua principale
TypeScript
Stelle
2.4k
Fork
540
Merge medio
17h 3m
PR unite (30g)
390

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di supabase/cli

Tutte le issue di supabase/cli

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.