Compose a real stack
Compose describes services, networks and volumes in one reproducible file.
What you will be able to do
- Keep secrets out of compose.yaml; use environment files or a secret manager.
- Add healthchecks and depend_on with condition: service_healthy.
- Use a distinct override file for local-only development settings.
In plain English
A Compose file is a local development contract. Service names become DNS names; depends_on controls start order but not readiness. Use healthchecks and wait for dependencies instead of sleeping.
services:
app:
build: .
ports: ["3000:3000"]
environment:
DATABASE_URL: postgres://app:secret@db:5432/app
depends_on:
db:
condition: service_healthy
db:
image: postgres:16-alpine
environment:
POSTGRES_USER: app
POSTGRES_PASSWORD: secret
POSTGRES_DB: app
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U app"]
interval: 5s
retries: 10
volumes:
pgdata:Your turn
MediumAdd a healthcheck
Add a pg_isready healthcheck to a Postgres service and make the app depend on it being healthy.
YAML · starter
services:
app:
image: my-appCheck your understanding before moving on.
Knowledge checkQuestion 1
What does depends_on with service_healthy wait for?
Select an answer to continue
Study tools
Make it yours.
Keep a private note for this lesson, then turn the key ideas into flashcards you can revisit.
Sign in to save notes and flashcards.Both are private to your account and stay with your progress.
Sign inFinished reading?
Lock in what you just learned.
0%
Mark this lesson complete to save your place and move one step closer to the certificate.