Model_AI_test / Dockerfile
Nolist's picture
Update Dockerfile
061f33a verified
Raw
History Blame Contribute Delete
1.48 kB
# 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"]