Spaces:
Runtime error
Runtime error
| # Sử dụng image Python 3.11 nhẹ | |
| FROM python:3.11-slim | |
| # Thiết lập thư mục làm việc | |
| WORKDIR /app | |
| # Cài đặt các công cụ cần thiết: gosu để chạy dưới quyền user app | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| gosu \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Tạo user app và cấp quyền cho /app | |
| RUN useradd -m -u 1000 app && \ | |
| chown -R app:app /app && \ | |
| chmod -R 775 /app | |
| # Tạo thư mục /app/data và cấp quyền | |
| RUN mkdir -p /app/data && \ | |
| chown -R app:app /app/data && \ | |
| chmod -R 775 /app/data | |
| # Sao chép requirements.txt và cài đặt thư viện | |
| COPY --chown=app:app requirements.txt . | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| # Sao chép toàn bộ mã nguồn | |
| COPY --chown=app:app . . | |
| # Chuyển sang user app | |
| USER app | |
| # Đặt umask để file mới được tạo với quyền 664 (rw-rw-r--) | |
| # Chạy Gunicorn với worker gthread, 2 worker, 4 thread mỗi worker | |
| CMD ["sh", "-c", "umask 002 && gunicorn -b 0.0.0.0:7860 --workers 1 --worker-class=sync --timeout 60 app:app"] | |
| # Mở cổng 7860 (Hugging Face Spaces yêu cầu cổng này) | |
| EXPOSE 7860 |