Files
gogo2/COBY/docker-compose.dev.yml
2025-08-05 01:22:27 +03:00

87 lines
2.2 KiB
YAML

# Docker Compose configuration for development environment
version: '3.8'
services:
# Override main app for development
coby-app:
build:
context: .
dockerfile: Dockerfile
target: development
environment:
# Development overrides
ENVIRONMENT: development
DEBUG: true
LOG_LEVEL: DEBUG
# Database configuration
DB_HOST: timescaledb
DB_PORT: 5432
DB_NAME: ${DB_NAME:-market_data_dev}
DB_USER: ${DB_USER:-market_user}
DB_PASSWORD: ${DB_PASSWORD:-dev_password}
# Redis configuration
REDIS_HOST: redis
REDIS_PORT: 6379
REDIS_PASSWORD: ${REDIS_PASSWORD:-dev_redis}
# Development settings
PYTHONPATH: /app
FLASK_ENV: development
FLASK_DEBUG: 1
volumes:
# Mount source code for live reloading
- .:/app
- ./logs:/app/logs
- ./data:/app/data
ports:
- "8080:8080"
- "8081:8081"
- "5678:5678" # Debug port
command: ["python", "-m", "COBY.main", "--debug", "--reload"]
# Development database with different settings
timescaledb:
environment:
POSTGRES_DB: ${DB_NAME:-market_data_dev}
POSTGRES_USER: ${DB_USER:-market_user}
POSTGRES_PASSWORD: ${DB_PASSWORD:-dev_password}
POSTGRES_HOST_AUTH_METHOD: trust # Less secure for dev
ports:
- "5433:5432" # Different port to avoid conflicts
# Development Redis
redis:
ports:
- "6380:6379" # Different port to avoid conflicts
command: redis-server --requirepass ${REDIS_PASSWORD:-dev_redis}
# Hot-reload web dashboard
coby-dashboard-dev:
image: nginx:alpine
container_name: coby-dashboard-dev
ports:
- "3000:80"
volumes:
- ./web/static:/usr/share/nginx/html
- ./docker/nginx-dev.conf:/etc/nginx/nginx.conf:ro
networks:
- coby-network
depends_on:
- coby-app
# Development tools container
dev-tools:
build:
context: .
dockerfile: Dockerfile
target: development
container_name: coby-dev-tools
volumes:
- .:/app
networks:
- coby-network
command: ["tail", "-f", "/dev/null"] # Keep container running
profiles:
- tools