75 lines
2.0 KiB
YAML
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:
|