File size: 1,166 Bytes
dd29b1e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
761a978
0911a71
dd29b1e
 
 
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
# 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