Spaces:
Sleeping
Sleeping
| # Stage 1: Build stage | |
| FROM python:3.10-alpine AS builder | |
| WORKDIR /app | |
| # Set environment variables | |
| ENV PYTHONDONTWRITEBYTECODE=1 | |
| ENV PYTHONUNBUFFERED=1 | |
| # Install build dependencies | |
| RUN apk add --no-cache \ | |
| gcc \ | |
| musl-dev \ | |
| curl \ | |
| libjpeg-turbo-dev \ | |
| zlib-dev \ | |
| libpng-dev poppler-utils | |
| # Install Python dependencies | |
| COPY requirements.txt . | |
| RUN pip install --no-cache-dir --user -r requirements.txt | |
| # Stage 2: Final stage | |
| FROM python:3.10-alpine | |
| WORKDIR /app | |
| # Set environment variables | |
| ENV PYTHONDONTWRITEBYTECODE=1 | |
| ENV PYTHONUNBUFFERED=1 | |
| # Install runtime dependencies only | |
| RUN apk add --no-cache \ | |
| libjpeg-turbo \ | |
| zlib \ | |
| libpng poppler-utils\ | |
| && rm -rf /var/cache/apk/* | |
| # Copy installed Python dependencies from builder stage | |
| COPY --from=builder /root/.local /home/appuser/.local | |
| # Copy the application code | |
| COPY . . | |
| # Create appuser and set permissions for /app and /data | |
| RUN adduser -D appuser \ | |
| && mkdir -p /data \ | |
| && chown -R appuser:appuser /app /data | |
| USER appuser | |
| EXPOSE 7860 | |
| # Command to run the Gradio program | |
| CMD ["python", "ux/discovery_demo.py"] |