Files
llm-automation-docs-and-rem…/deploy/docker/Dockerfile.chat
dnviti 27dd9e00b6
Some checks failed
CI/CD Pipeline / Generate Documentation (push) Failing after 7m41s
CI/CD Pipeline / Lint Code (push) Failing after 7m44s
CI/CD Pipeline / Run Tests (push) Has been skipped
CI/CD Pipeline / Security Scanning (push) Has been skipped
CI/CD Pipeline / Build and Push Docker Images (api) (push) Has been skipped
CI/CD Pipeline / Build and Push Docker Images (chat) (push) Has been skipped
CI/CD Pipeline / Build and Push Docker Images (frontend) (push) Has been skipped
CI/CD Pipeline / Build and Push Docker Images (worker) (push) Has been skipped
CI/CD Pipeline / Deploy to Staging (push) Has been skipped
CI/CD Pipeline / Deploy to Production (push) Has been skipped
feat: enhance chat service with documentation indexing and improved Docker configuration
2025-10-20 19:15:32 +02:00

71 lines
1.8 KiB
Docker

# 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 scripts/ /app/scripts/
COPY output/ /app/output/
COPY pyproject.toml README.md /app/
# Install poetry-core (required for install with pyproject.toml)
RUN pip install --no-cache-dir poetry-core
# Install the package
RUN pip install --no-cache-dir /app
# Set PYTHONPATH to ensure module can be imported
ENV PYTHONPATH=/app/src:$PYTHONPATH
# Create necessary directories
RUN mkdir -p /app/logs /app/data /app/output /app/scripts
# Create non-root user and set permissions
RUN useradd -m -u 1000 appuser && \
chown -R appuser:appuser /app && \
chmod +x /app/scripts/*.sh 2>/dev/null || true && \
chmod +x /app/scripts/*.py 2>/dev/null || true
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"]