Spaces:
Sleeping
Sleeping
# Base image | |
FROM python:3.10-slim | |
# Environment variables for cache and config | |
ENV PYTHONDONTWRITEBYTECODE=1 \ | |
PYTHONUNBUFFERED=1 \ | |
HOME=/app \ | |
HF_HOME=/app/.hf_cache \ | |
LANGTOOL_HOME=/app/.ltool_cache \ | |
XDG_CACHE_HOME=/app/.cache | |
# Create working directory and cache folders with full access | |
RUN mkdir -p /app/.hf_cache /app/.ltool_cache /app/.cache && \ | |
chmod -R 777 /app/.hf_cache /app/.ltool_cache /app/.cache | |
# Install system dependencies | |
RUN apt-get update && apt-get install -y \ | |
openjdk-17-jre-headless \ | |
git \ | |
&& apt-get clean && rm -rf /var/lib/apt/lists/* | |
# Set working directory | |
WORKDIR /app | |
# Copy all project files | |
COPY . . | |
# Upgrade pip and install Python dependencies | |
RUN pip install --upgrade pip | |
RUN pip install --no-cache-dir -r requirements.txt | |
# Pre-download and cache all required models | |
RUN python cache_models.py | |
# Set entrypoint script permissions | |
COPY entrypoint.sh /app/entrypoint.sh | |
RUN chmod +x /app/entrypoint.sh | |
# Expose Flask default port | |
EXPOSE 7860 | |
# Add this near the end of Dockerfile | |
RUN chmod -R a+w /app/.hf_cache | |
# Run app | |
CMD ["/app/entrypoint.sh"] | |