# Dockerfile for Chat Service FROM python:3.12-slim as builder WORKDIR /build # Install Poetry RUN pip install --no-cache-dir poetry==1.8.0 # Copy dependency files COPY pyproject.toml poetry.lock ./ # Export dependencies RUN poetry config virtualenvs.create false \ && poetry export -f requirements.txt --output requirements.txt --without-hashes # Runtime stage FROM python:3.12-slim LABEL maintainer="automation-team@company.com" LABEL description="Datacenter Documentation Chat Server" # Install system dependencies RUN apt-get update && apt-get install -y \ curl \ && rm -rf /var/lib/apt/lists/* WORKDIR /app # Copy requirements from builder COPY --from=builder /build/requirements.txt . # Install Python dependencies RUN pip install --no-cache-dir -r requirements.txt # Copy application code and package definition COPY src/ /app/src/ COPY config/ /app/config/ COPY pyproject.toml README.md /app/ # Install the package in editable mode RUN pip install --no-cache-dir -e /app # Create necessary directories RUN mkdir -p /app/logs # Create non-root user RUN useradd -m -u 1000 appuser && \ chown -R appuser:appuser /app USER appuser # Expose chat port EXPOSE 8001 # Health check HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD curl -f http://localhost:8001/health || exit 1 # Run the chat server CMD ["python", "-m", "datacenter_docs.chat.main"]