Files
llm-automation-docs-and-rem…/deploy/docker/Dockerfile.chat
dnviti ba9900bd57
Some checks failed
Build / Code Quality Checks (push) Successful in 15m41s
Build / Build & Push Docker Images (chat) (push) Failing after 36s
Build / Build & Push Docker Images (frontend) (push) Successful in 7m48s
Build / Build & Push Docker Images (worker) (push) Has been cancelled
Build / Build & Push Docker Images (api) (push) Has been cancelled
fix: remove COPY output/ and fix PYTHONPATH in Dockerfile.chat
Resolve chat service build failure caused by missing output directory:

**Root Cause:**
- output/ directory is in .gitignore and not included in Docker build context
- COPY output/ /app/output/ failed with "not found" error
- PYTHONPATH still had undefined $PYTHONPATH variable

**Solution:**
- Remove COPY output/ line (directory created later with mkdir)
- Fix PYTHONPATH: /app/src:$PYTHONPATH → /app/src
- output/ directory already created at line 51: mkdir -p /app/output

**Errors Fixed:**
- ERROR: "/output": not found
- WARNING: Usage of undefined variable '$PYTHONPATH'

Successfully tested Docker build.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-21 16:09:08 +02:00

70 lines
1.8 KiB
Docker

# Dockerfile for Chat Service
FROM python:3.12-slim AS builder
WORKDIR /build
# Install Poetry and export plugin
RUN pip install --no-cache-dir poetry==2.2.1 poetry-plugin-export
# 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 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
# 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"]