gendesign/tradein-mvp/docker-compose.yml
lekss361 8d7feabf9f
All checks were successful
Deploy Trade-In / changes (push) Successful in 11s
Deploy Trade-In / build-frontend (push) Successful in 31s
Deploy Trade-In / build-browser (push) Successful in 30s
Deploy Trade-In / test (push) Successful in 1m29s
Deploy Trade-In / build-backend (push) Successful in 1m21s
Deploy Trade-In / deploy (push) Successful in 1m2s
chore(scraper-kit): docker-context wiring + restore backend workspace dep (#2137)
2026-07-02 14:21:38 +00:00

90 lines
3 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Trade-In MVP — локальный стек для разработки.
#
# Архитектура зеркалит прод gendesign (Caddy -> frontend / backend / postgres),
# но всё локально без TLS — открывать http://localhost:8080
#
# Запуск:
# docker compose up -d --build
#
# Проверки:
# curl http://localhost:8080/health # backend health через Caddy
# open http://localhost:8080 # frontend (auto-redirect → /trade-in)
# open http://localhost:8080/preview/ # tradein.html mockup для сравнения
name: tradein-mvp
services:
postgres:
image: postgis/postgis:16-3.4-alpine
container_name: tradein-postgres
restart: unless-stopped
environment:
POSTGRES_USER: tradein
POSTGRES_PASSWORD: tradein
POSTGRES_DB: tradein
volumes:
- postgres-data:/var/lib/postgresql/data
# SQL init scripts: 001_trade_in_estimates.sql создаст таблицу при первом старте.
- ./backend/data/sql:/docker-entrypoint-initdb.d:ro
healthcheck:
test: ["CMD-SHELL", "pg_isready -U tradein -d tradein"]
interval: 5s
timeout: 3s
retries: 10
ports:
- "127.0.0.1:5433:5432" # local port 5433, чтобы не конфликтовать с прод-туннелем 15432
backend:
build:
# Context = tradein-mvp root (uv workspace): образу нужен packages/scraper-kit
# для editable install (#2137). Dockerfile лежит в backend/.
context: .
dockerfile: backend/Dockerfile
container_name: tradein-backend
restart: unless-stopped
environment:
DATABASE_URL: postgresql+psycopg://tradein:tradein@postgres:5432/tradein
CORS_ORIGINS: '["http://localhost:8080","http://localhost:3000"]'
ENVIRONMENT: dev
depends_on:
postgres:
condition: service_healthy
volumes:
# Hot-reload: монтируем app/ в runner, uvicorn --reload подхватит изменения.
- ./backend/app:/app/app:ro
ports:
- "127.0.0.1:8000:8000" # для прямого debug-доступа в обход Caddy
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
container_name: tradein-frontend
restart: unless-stopped
environment:
BACKEND_URL: http://backend:8000
NODE_ENV: production
depends_on:
- backend
ports:
- "127.0.0.1:3000:3000" # для прямого debug-доступа в обход Caddy
caddy:
image: caddy:2-alpine
container_name: tradein-caddy
restart: unless-stopped
ports:
- "127.0.0.1:8080:80" # главный entry point — http://localhost:8080
volumes:
- ./deploy/Caddyfile:/etc/caddy/Caddyfile:ro
- ./frontend/public:/srv/preview:ro # для /preview/tradein.html mockup
- caddy-data:/data
- caddy-config:/config
depends_on:
- frontend
- backend
volumes:
postgres-data:
caddy-data:
caddy-config: