learning_ai_invt_trdg/docker-compose.dev.yml
Saravana Achu Mac 6c43fca934 chore(infra): vendored @bytelyst/* packages, Docker healthcheck, compose merge
- Switch @bytelyst/* to file:../vendor/* references; add vendor/ tree;
  update both Dockerfile stages to COPY vendor/ before pnpm install
- docker-compose.yml: add healthcheck on backend /health/live; use
  backend/.env as env_file; env-var-driven web build args with prod defaults;
  GITEA_NPM_TOKEN uses ${:-} safe default; web depends_on service_healthy
- Add docker-compose.dev.yml hot-reload overlay
- Add scripts/dev.sh convenience script for Docker+local-web hybrid
- .npmrc: add replace-registry-host=always for Gitea Docker-internal rewrite
- Update smoke-release.sh and root package.json docker:* scripts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 19:35:35 -04:00

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 `pnpm install` at repo root first).
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