learning_ai_invt_trdg/docker-compose.dev.yml

56 lines
1.9 KiB
YAML

# Development overlay — hot-reload for backend and web.
# Usage:
# docker compose -f docker-compose.yml -f docker-compose.dev.yml up
#
# Both services mount local source directories so edits are reflected immediately
# without rebuilding the image. Requires node_modules to exist locally
# (run the matching root install first, for example `pnpm run install:common-plat`).
version: '3.9'
services:
# ---------------------------------------------------------------------------
# Backend dev — tsx hot-reload
# ---------------------------------------------------------------------------
backend:
build:
context: .
dockerfile: backend/Dockerfile
target: builder # Stop at the build stage; no production image
command: >
sh -c "cd /app/backend && node --import tsx src/bootstrap.ts"
volumes:
- ./backend/src:/app/backend/src:ro
- ./shared:/app/shared:ro
- ./.env:/app/.env:ro
environment:
NODE_ENV: development
# Override healthcheck for faster feedback in dev
healthcheck:
interval: 10s
start_period: 5s
# ---------------------------------------------------------------------------
# Web dev — Vite dev server (HMR)
# ---------------------------------------------------------------------------
web:
image: node:20-alpine
working_dir: /app/web
command: >
sh -c "corepack enable && pnpm run dev --host 0.0.0.0 --port 3048"
volumes:
- ./web:/app/web:ro
- ./shared:/app/shared:ro
- ./web/node_modules:/app/web/node_modules
- ./.env:/app/.env:ro
ports:
- '3048:3048'
environment:
NODE_ENV: development
VITE_PRODUCT_ID: ${VITE_PRODUCT_ID:-invttrdg}
VITE_PLATFORM_URL: ${VITE_PLATFORM_URL:-http://localhost:4003/api}
VITE_TRADING_API_URL: ${VITE_TRADING_API_URL:-http://localhost:4018}
VITE_BACKTEST_ENABLED: ${VITE_BACKTEST_ENABLED:-true}
depends_on:
- backend