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"]