Spaces:
Runtime error
Runtime error
| # 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"] |