Docker runtime
The local compose stack is optimized for development. Production should use pinned release images and durable external services.
Local Compose
Section titled “Local Compose”vp run dev:docker:buildThe compose project includes:
shop-postgresfor local Postgres.shop-db-migratefor tracked SQL migrations and seed data.shop-apifor the NestJS API in watch mode.shop-webfor Vite dev server and storefront HMR.shop-mailpitfor local email inspection.shop-s3andshop-s3-initfor MinIO product images.
Source is bind-mounted; node_modules live in named volumes.
Production Images
Section titled “Production Images”Build production images from the repo root:
docker build -f apps/api/Dockerfile --target production .docker build -f apps/web/Dockerfile --target production .The release updater expects published image digests, not mutable tags.
Required Production Services
Section titled “Required Production Services”- Postgres.
- Public web origin.
- API origin.
- SMTP transport.
- S3-compatible storage for product images.
- Stripe credentials when
PAYMENT_PROVIDER=stripe.
Health Checks
Section titled “Health Checks”The safe updater starts services, runs migrations from the pinned API image, and checks API/web health before promoting the new release env.