File size: 1,483 Bytes
061f33a
 
9e2b732
061f33a
 
 
 
 
 
 
 
9e2b732
 
061f33a
 
 
 
 
 
9e2b732
061f33a
 
9e2b732
061f33a
 
 
9e2b732
 
061f33a
 
9e2b732
061f33a
 
 
 
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
# Sử dụng image Python cơ bản của Streamlit (có sẵn Streamlit)
FROM python:3.9-slim-buster

# Tạo một người dùng không có quyền root để tăng cường bảo mật
RUN useradd -m -u 1000 user
USER user

# Đặt biến môi trường cho PATH để các thư viện được cài đặt có thể truy cập được
ENV PATH="/home/user/.local/bin:$PATH"

# Đặt thư mục làm việc trong container
WORKDIR /app

# Sao chép các file của ứng dụng vào container
# --chown=user đảm bảo quyền sở hữu cho người dùng 'user'
COPY --chown=user . /app

# Cài đặt các thư viện từ requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# Đặt biến môi trường để NLTK tìm data ở thư mục cục bộ của ứng dụng
ENV NLTK_DATA=/app/nltk_data

# Lệnh tải NLTK stopwords (chỉ chạy một lần trong quá trình build Docker)
# Điều này giúp đảm bảo stopwords có sẵn khi ứng dụng chạy
RUN python -c "import nltk; nltk.download('stopwords', download_dir='/app/nltk_data')"


# Expose cổng mà Streamlit app sẽ lắng nghe (Hugging Face Spaces dùng 7860 cho Docker/Streamlit)
EXPOSE 7860

# Lệnh để chạy ứng dụng Streamlit
# --server.port 7860 để Streamlit lắng nghe đúng cổng
# --server.address 0.0.0.0 để lắng nghe tất cả các giao diện mạng
CMD ["streamlit", "run", "app.py", "--server.port", "7860", "--server.address", "0.0.0.0"]