version: '3.8' # Development overrides for docker-compose.yml # Use with: docker-compose -f docker-compose.yml -f docker-compose.dev.yml up services: bot: build: target: development args: INSTALL_AI: true image: guardden:dev container_name: guardden-bot-dev environment: - GUARDDEN_LOG_LEVEL=DEBUG - PYTHONDONTWRITEBYTECODE=1 - PYTHONUNBUFFERED=1 volumes: # Mount source code for hot reloading - ./src:/app/src:ro - ./tests:/app/tests:ro - ./migrations:/app/migrations:ro - ./pyproject.toml:/app/pyproject.toml:ro - ./pytest.ini:/app/pytest.ini:ro - ./alembic.ini:/app/alembic.ini:ro # Mount data and logs for development - ./data:/app/data - ./logs:/app/logs command: ["python", "-m", "guardden", "--reload"] ports: - "5678:5678" # Debugger port stdin_open: true tty: true dashboard: build: target: development image: guardden-dashboard:dev container_name: guardden-dashboard-dev environment: - GUARDDEN_LOG_LEVEL=DEBUG - PYTHONDONTWRITEBYTECODE=1 - PYTHONUNBUFFERED=1 volumes: # Mount source code for hot reloading - ./src:/app/src:ro - ./migrations:/app/migrations:ro command: ["python", "-m", "guardden.dashboard", "--reload", "--host", "0.0.0.0"] ports: - "8080:8000" - "5679:5678" # Debugger port db: environment: - POSTGRES_PASSWORD=guardden_dev volumes: # Override with development-friendly settings - postgres_dev_data:/var/lib/postgresql/data command: - postgres - -c - log_statement=all - -c - log_duration=on - -c - "log_line_prefix=%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h" redis: command: redis-server --appendonly yes --requirepass guardden_redis_dev --loglevel debug # Development tools mailhog: image: mailhog/mailhog:latest container_name: guardden-mailhog restart: unless-stopped ports: - "1025:1025" # SMTP - "8025:8025" # Web UI networks: - guardden # Database administration pgadmin: image: dpage/pgadmin4:latest container_name: guardden-pgadmin restart: unless-stopped environment: - PGADMIN_DEFAULT_EMAIL=admin@guardden.dev - PGADMIN_DEFAULT_PASSWORD=admin ports: - "5050:80" volumes: - pgadmin_data:/var/lib/pgadmin networks: - guardden # Redis administration redis-commander: image: rediscommander/redis-commander:latest container_name: guardden-redis-commander restart: unless-stopped environment: - REDIS_HOST=redis - REDIS_PORT=6379 - REDIS_PASSWORD=guardden_redis_dev ports: - "8081:8081" networks: - guardden volumes: postgres_dev_data: pgadmin_data: