# Docker Development Environment This directory contains Docker configurations for running the Datacenter Documentation System in development mode. ## Prerequisites - Docker Engine 20.10+ - Docker Compose V2 - At least 4GB RAM available for Docker ## Quick Start ```bash # Start all services cd deploy/docker docker-compose -f docker-compose.dev.yml up -d # View logs docker-compose -f docker-compose.dev.yml logs -f # Stop all services docker-compose -f docker-compose.dev.yml down ``` ## Environment Variables Create a `.env` file in the project root with: ```env ANTHROPIC_API_KEY=your_api_key_here MCP_SERVER_URL=http://localhost:8001 ``` ## Services ### Running Services | Service | Port | Description | Status | |---------|------|-------------|--------| | **API** | 8000 | FastAPI documentation server | ✅ Healthy | | **MongoDB** | 27017 | Database | ✅ Healthy | | **Redis** | 6379 | Cache & message broker | ✅ Healthy | | **Frontend** | 80 | React web interface | ⚠️ Running | | **Flower** | 5555 | Celery monitoring | ✅ Running | ### Not Implemented Yet - **Chat Service** (port 8001) - WebSocket chat interface - **Worker Service** - Celery background workers These services are commented out in docker-compose.dev.yml and will be enabled when implemented. ## Access Points - **API Documentation**: http://localhost:8000/docs - **API Health**: http://localhost:8000/health - **Frontend**: http://localhost - **Flower (Celery Monitor)**: http://localhost:5555 - **MongoDB**: `mongodb://admin:admin123@localhost:27017` - **Redis**: `localhost:6379` ## Build Individual Services ```bash # Rebuild a specific service docker-compose -f docker-compose.dev.yml up --build -d api # View logs for a specific service docker-compose -f docker-compose.dev.yml logs -f api ``` ## Troubleshooting ### API not starting Check logs: ```bash docker-compose -f docker-compose.dev.yml logs api ``` ### MongoDB connection issues Ensure MongoDB is healthy: ```bash docker-compose -f docker-compose.dev.yml ps mongodb ``` ### Clear volumes and restart ```bash docker-compose -f docker-compose.dev.yml down -v docker-compose -f docker-compose.dev.yml up --build -d ``` ## Development Workflow 1. **Code changes** are mounted as volumes, so changes to `src/` are reflected immediately 2. **Restart services** after dependency changes: ```bash docker-compose -f docker-compose.dev.yml restart api ``` 3. **Rebuild** after pyproject.toml changes: ```bash docker-compose -f docker-compose.dev.yml up --build -d api ``` ## Files - `Dockerfile.api` - FastAPI service - `Dockerfile.chat` - Chat service (not yet implemented) - `Dockerfile.worker` - Celery worker (not yet implemented) - `Dockerfile.frontend` - React frontend with Nginx - `docker-compose.dev.yml` - Development orchestration - `nginx.conf` - Nginx configuration for frontend ## Notes - Python version: 3.12 - Black formatter uses Python 3.12 target - Services use Poetry for dependency management - Frontend uses Vite for building