-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.dev.yml
More file actions
1 lines (1 loc) · 4.29 KB
/
Copy pathdocker-compose.dev.yml
File metadata and controls
1 lines (1 loc) · 4.29 KB
1
version: '3.8'\n\nservices:\n # 后端应用\n backend:\n build:\n context: .\n dockerfile: Dockerfile.dev\n ports:\n - \"8000:8000\"\n volumes:\n - .:/app\n - ./logs:/app/logs\n - backend_cache:/app/data/cache\n environment:\n - ENVIRONMENT=development\n - DEBUG=true\n - DATABASE_URL=postgresql://postgres:password@postgres:5432/quant_framework_dev\n - REDIS_URL=redis://redis:6379/0\n - SECRET_KEY=dev-secret-key-change-in-production\n - TUSHARE_TOKEN=${TUSHARE_TOKEN:-}\n - LOG_LEVEL=DEBUG\n depends_on:\n - postgres\n - redis\n networks:\n - quant-network\n restart: unless-stopped\n healthcheck:\n test: [\"CMD\", \"curl\", \"-f\", \"http://localhost:8000/health\"]\n interval: 30s\n timeout: 10s\n retries: 3\n start_period: 60s\n \n # Celery Worker\n worker:\n build:\n context: .\n dockerfile: Dockerfile.dev\n volumes:\n - .:/app\n - ./logs:/app/logs\n - worker_cache:/app/data/cache\n environment:\n - ENVIRONMENT=development\n - DATABASE_URL=postgresql://postgres:password@postgres:5432/quant_framework_dev\n - REDIS_URL=redis://redis:6379/0\n - SECRET_KEY=dev-secret-key-change-in-production\n - TUSHARE_TOKEN=${TUSHARE_TOKEN:-}\n - LOG_LEVEL=DEBUG\n depends_on:\n - postgres\n - redis\n networks:\n - quant-network\n restart: unless-stopped\n command: celery -A quant_framework.core.celery worker --loglevel=info --concurrency=4\n \n # Celery Beat (定时任务)\n beat:\n build:\n context: .\n dockerfile: Dockerfile.dev\n volumes:\n - .:/app\n - ./logs:/app/logs\n environment:\n - ENVIRONMENT=development\n - DATABASE_URL=postgresql://postgres:password@postgres:5432/quant_framework_dev\n - REDIS_URL=redis://redis:6379/0\n - SECRET_KEY=dev-secret-key-change-in-production\n - TUSHARE_TOKEN=${TUSHARE_TOKEN:-}\n depends_on:\n - postgres\n - redis\n networks:\n - quant-network\n restart: unless-stopped\n command: celery -A quant_framework.core.celery beat --loglevel=info\n \n # 前端应用\n frontend:\n build:\n context: ./frontend\n dockerfile: Dockerfile.dev\n ports:\n - \"3000:3000\"\n volumes:\n - ./frontend:/app\n - /app/node_modules\n environment:\n - REACT_APP_API_URL=http://localhost:8000/api/v1\n - REACT_APP_WS_URL=ws://localhost:8000/ws\n - CHOKIDAR_USEPOLLING=true\n networks:\n - quant-network\n restart: unless-stopped\n stdin_open: true\n tty: true\n \n # PostgreSQL数据库\n postgres:\n image: postgres:13-alpine\n ports:\n - \"5432:5432\"\n environment:\n - POSTGRES_DB=quant_framework_dev\n - POSTGRES_USER=postgres\n - POSTGRES_PASSWORD=password\n - POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C\n volumes:\n - postgres_data:/var/lib/postgresql/data\n - ./scripts/init_db.sql:/docker-entrypoint-initdb.d/init.sql\n networks:\n - quant-network\n restart: unless-stopped\n healthcheck:\n test: [\"CMD-SHELL\", \"pg_isready -U postgres\"]\n interval: 10s\n timeout: 5s\n retries: 5\n \n # Redis缓存\n redis:\n image: redis:6-alpine\n ports:\n - \"6379:6379\"\n command: redis-server --appendonly yes --maxmemory 512mb --maxmemory-policy allkeys-lru\n volumes:\n - redis_data:/data\n networks:\n - quant-network\n restart: unless-stopped\n healthcheck:\n test: [\"CMD\", \"redis-cli\", \"ping\"]\n interval: 10s\n timeout: 3s\n retries: 3\n \n # Nginx反向代理\n nginx:\n image: nginx:alpine\n ports:\n - \"80:80\"\n volumes:\n - ./nginx/dev.conf:/etc/nginx/nginx.conf:ro\n depends_on:\n - backend\n - frontend\n networks:\n - quant-network\n restart: unless-stopped\n healthcheck:\n test: [\"CMD\", \"wget\", \"--quiet\", \"--tries=1\", \"--spider\", \"http://localhost/health\"]\n interval: 30s\n timeout: 10s\n retries: 3\n\nvolumes:\n postgres_data:\n driver: local\n redis_data:\n driver: local\n backend_cache:\n driver: local\n worker_cache:\n driver: local\n\nnetworks:\n quant-network:\n driver: bridge\n