Files
mintel.me/docker-compose.dev.yml

75 lines
2.0 KiB
YAML

services:
# Lightweight proxy: gives Caddy the labels to route mintel.localhost → host Mac
proxy:
image: alpine:latest
command: sleep infinity
restart: unless-stopped
networks:
- infra
labels:
- "caddy=http://${TRAEFIK_HOST:-mintel.localhost}"
- "caddy.reverse_proxy=host.docker.internal:3000"
# Full Docker dev (use with `pnpm run dev:docker`)
app:
build:
context: .
dockerfile: Dockerfile.dev
restart: unless-stopped
working_dir: /app
volumes:
- .:/app
- node_modules:/app/node_modules
- apps_node_modules:/app/apps/web/node_modules
- ../at-mintel:/at-mintel
- pnpm_store:/pnpm # Cache pnpm store
env_file:
- .env
environment:
- NODE_ENV=development
- NEXT_TELEMETRY_DISABLED=1
# - CI=true
- NPM_TOKEN=${NPM_TOKEN:-}
- DATABASE_URI=postgres://${postgres_DB_USER:-payload}:${postgres_DB_PASSWORD:-payload}@postgres-db:5432/${postgres_DB_NAME:-payload}
- PAYLOAD_SECRET=dev-secret
command: >
sh -c "pnpm install --no-frozen-lockfile && pnpm --filter @mintel/web dev"
networks:
- default
- infra
labels:
- "traefik.enable=true"
- "traefik.http.services.${PROJECT_NAME:-mintel-me}.loadbalancer.server.port=3000"
- "traefik.docker.network=infra"
- "caddy=http://${TRAEFIK_HOST:-mintel.localhost}"
- "caddy.reverse_proxy={{upstreams 3000}}"
postgres-db:
image: postgres:15-alpine
restart: always
networks:
- default
env_file:
- .env
environment:
POSTGRES_DB: ${postgres_DB_NAME:-payload}
POSTGRES_USER: ${postgres_DB_USER:-payload}
POSTGRES_PASSWORD: ${postgres_DB_PASSWORD:-payload}
volumes:
- payload-db-data:/var/lib/postgresql/data
ports:
- "54321:5432"
networks:
default:
name: ${PROJECT_NAME:-mintel-me}-internal
infra:
external: true
volumes:
payload-db-data:
node_modules:
apps_node_modules:
pnpm_store: