File size: 1,144 Bytes
d0594c5 5b3323c 8653d40 d099a33 c3f6db5 d099a33 c3f6db5 68b5c9c 254a7ce 68b5c9c 481d210 c3f6db5 8653d40 d099a33 1d2d77d c3f6db5 d0594c5 d099a33 481d210 c3f6db5 8653d40 1d2d77d 68b5c9c 145afe8 254a7ce 145afe8 d099a33 e3b515c 68b5c9c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
FROM python:3.10-slim
# Install system dependencies
RUN apt-get update && apt-get install -y \
tesseract-ocr \
tesseract-ocr-eng \
&& rm -rf /var/lib/apt/lists/*
# Set working directory
WORKDIR /app
# Create necessary directories with proper permissions
RUN mkdir -p /app/logs \
&& mkdir -p /app/cache \
&& mkdir -p /app/uploads \
&& mkdir -p /app/model_cache \
&& mkdir -p /app/temp \
&& chown -R nobody:nogroup /app \
&& chmod -R 777 /app
# Copy requirements first to leverage Docker cache
COPY requirements.txt .
# Install Python dependencies
RUN pip install --no-cache-dir -r requirements.txt
# Download spaCy model
RUN python -m spacy download en_core_web_md
# Copy application code
COPY . .
# Set environment variables
ENV PYTHONUNBUFFERED=1
ENV FLASK_APP=app.py
ENV FLASK_ENV=production
ENV TRANSFORMERS_CACHE=/app/cache
ENV HF_HOME=/app/cache
ENV XDG_CACHE_HOME=/app/cache
ENV LOG_DIR=/app/logs
# Switch to non-root user
USER nobody
# Expose port
EXPOSE 7860
# Run the application
CMD ["gunicorn", "--bind", "0.0.0.0:7860", "--workers", "1", "--threads", "8", "--timeout", "0", "app:app"] |