# Use Python 3.11 slim image FROM python:3.11-slim # Set working directory WORKDIR /app # Install system dependencies including LibreOffice RUN apt-get update && apt-get install -y \ libreoffice \ libreoffice-writer \ libreoffice-calc \ libreoffice-impress \ fonts-liberation \ fonts-dejavu-core \ curl \ && rm -rf /var/lib/apt/lists/* \ && apt-get clean # Create user and set permissions RUN useradd -m -u 1000 user && \ mkdir -p /app/uploads /app/web && \ chown -R user:user /app # Switch to non-root user USER user # Set environment variables ENV HOME=/home/user \ PATH=/home/user/.local/bin:$PATH \ PYTHONPATH=/app \ PYTHONUNBUFFERED=1 # Copy requirements and install Python dependencies COPY --chown=user:user requirements.txt . RUN pip install --no-cache-dir --upgrade pip && \ pip install --no-cache-dir -r requirements.txt # Copy application code COPY --chown=user:user . . # Expose port EXPOSE 7860 # Run the application CMD ["python", "app/main.py"]