T-Phong commited on
Commit
a69440a
·
1 Parent(s): 0490e30

add dockerfile

Browse files
Files changed (1) hide show
  1. dockerfile +33 -0
dockerfile ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 1. Dùng Python 3.10 (tương thích tốt với Faiss/Torch mới)
2
+ FROM python:3.10-slim
3
+ # 1. Tắt buffering
4
+ ENV PYTHONUNBUFFERED=1
5
+
6
+ # 2. Thiết lập thư mục làm việc
7
+ WORKDIR /app
8
+
9
+ # 3. Copy file requirements trước (để tận dụng cache)
10
+ # Nếu bạn vẫn dùng tên 'requirements_rag.txt' thì sửa dòng dưới thành:
11
+ COPY requirements.txt requirements.txt
12
+
13
+ # 4. Cài đặt thư viện
14
+ RUN pip install --no-cache-dir -r requirements.txt
15
+
16
+ # 5. Tạo user non-root trước (Bắt buộc đối với Hugging Face Spaces)
17
+ RUN useradd -m -u 1000 user
18
+
19
+ # 6. Copy toàn bộ code vào container và cấp quyền cho user
20
+ # Quan trọng: Cấp quyền sở hữu cho user để tránh lỗi Permission denied khi app cần ghi file
21
+ COPY --chown=user . .
22
+
23
+ # 7. Chuyển sang user non-root
24
+ USER user
25
+ ENV HOME=/home/user \
26
+ PATH=/home/user/.local/bin:$PATH
27
+
28
+ # 8. Mở port 7860 (Port mặc định của HF Spaces)
29
+ EXPOSE 7860
30
+
31
+ # 9. Lệnh chạy server
32
+ # "app:app" nghĩa là: trong file app.py, tìm object tên là app (biến Flask)
33
+ CMD ["gunicorn", "-b", "0.0.0.0:7860", "api:app", "--timeout", "120", "--workers", "2"]