# 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