Files
llm-automation-docs-and-rem…/Dockerfile
dnviti 52655e9eee
Some checks failed
CI/CD Pipeline / Generate Documentation (push) Successful in 4m57s
CI/CD Pipeline / Lint Code (push) Successful in 5m33s
CI/CD Pipeline / Run Tests (push) Successful in 4m20s
CI/CD Pipeline / Security Scanning (push) Successful in 4m32s
CI/CD Pipeline / Build and Push Docker Images (chat) (push) Failing after 49s
CI/CD Pipeline / Build and Push Docker Images (frontend) (push) Failing after 48s
CI/CD Pipeline / Build and Push Docker Images (worker) (push) Failing after 46s
CI/CD Pipeline / Build and Push Docker Images (api) (push) Failing after 40s
CI/CD Pipeline / Deploy to Staging (push) Has been skipped
CI/CD Pipeline / Deploy to Production (push) Has been skipped
feat: Implement CLI tool, Celery workers, and VMware collector
Complete implementation of core MVP components:

CLI Tool (src/datacenter_docs/cli.py):
- 11 commands for system management (serve, worker, init-db, generate, etc.)
- Auto-remediation policy management (enable/disable/status)
- System statistics and monitoring
- Rich formatted output with tables and panels

Celery Workers (src/datacenter_docs/workers/):
- celery_app.py with 4 specialized queues (documentation, auto_remediation, data_collection, maintenance)
- tasks.py with 8 async tasks integrated with MongoDB/Beanie
- Celery Beat scheduling (6h docs, 1h data collection, 15m metrics, 2am cleanup)
- Rate limiting (10 auto-remediation/h) and timeout configuration
- Task lifecycle signals and comprehensive logging

VMware Collector (src/datacenter_docs/collectors/):
- BaseCollector abstract class with full workflow (connect/collect/validate/store/disconnect)
- VMwareCollector for vSphere infrastructure data collection
- Collects VMs, ESXi hosts, clusters, datastores, networks with statistics
- MCP client integration with mock data fallback for development
- MongoDB storage via AuditLog and data validation

Documentation & Configuration:
- Updated README.md with CLI commands and Workers sections
- Updated TODO.md with project status (55% completion)
- Added CLAUDE.md with comprehensive project instructions
- Added Docker compose setup for development environment

Project Status:
- Completion: 50% -> 55%
- MVP Milestone: 80% complete (only Infrastructure Generator remaining)
- Estimated time to MVP: 1-2 days

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-19 22:29:59 +02:00

86 lines
2.1 KiB
Docker

# Multi-stage Dockerfile per Datacenter Documentation System
# Stage 1: Build MkDocs documentation
FROM python:3.12-slim as docs-builder
WORKDIR /build
# Install MkDocs e plugins
RUN pip install --no-cache-dir \
mkdocs==1.5.3 \
mkdocs-material==9.5.3 \
mkdocs-git-revision-date-localized-plugin==1.2.2 \
mkdocs-minify-plugin==0.7.2 \
mkdocs-awesome-pages-plugin==2.9.2 \
mkdocs-macros-plugin==1.0.5 \
markdown==3.5.1 \
pymdown-extensions==10.5
# Copy documentation source
COPY mkdocs.yml /build/
COPY docs /build/docs/
COPY templates /build/docs/sections/
# Build documentation
RUN mkdocs build --clean --strict
# Stage 2: Runtime application
FROM python:3.12-slim
LABEL maintainer="automation-team@company.com"
LABEL description="Datacenter Documentation Server with FastAPI and MCP"
# Installinstall system dependencies
RUN apt-get update && apt-get install -y \
gcc \
libpq-dev \
openssh-client \
snmp \
curl \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Copy requirements
COPY requirements.txt /app/
COPY api/requirements-api.txt /app/
# Install Python dependencies
RUN pip install --no-cache-dir -r requirements.txt \
&& pip install --no-cache-dir -r requirements-api.txt
# Copy application code
COPY api/ /app/api/
COPY mcp-server/ /app/mcp-server/
COPY scripts/ /app/scripts/
# Copy built documentation from builder stage
COPY --from=docs-builder /build/site /app/site
# Create necessary directories
RUN mkdir -p /app/docs/sections /app/config /app/logs
# Copy sections (templates will be populated by automation)
COPY templates/ /app/docs/sections/
# Create non-root user
RUN useradd -m -u 1000 appuser && \
chown -R appuser:appuser /app
USER appuser
# Expose ports
# 8000: FastAPI documentation server
# 8001: MCP server
EXPOSE 8000 8001
# Health check
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
CMD curl -f http://localhost:8000/health || exit 1
# Startup script
COPY --chown=appuser:appuser docker-entrypoint.sh /app/
RUN chmod +x /app/docker-entrypoint.sh
ENTRYPOINT ["/app/docker-entrypoint.sh"]
CMD ["server"]