Spaces:
Sleeping
Sleeping
Update Dockerfile
Browse files- Dockerfile +11 -22
Dockerfile
CHANGED
|
@@ -1,39 +1,28 @@
|
|
| 1 |
-
#
|
|
|
|
|
|
|
| 2 |
FROM python:3.9-slim-buster
|
| 3 |
|
| 4 |
-
# Tạo
|
| 5 |
RUN useradd -m -u 1000 user
|
| 6 |
USER user
|
| 7 |
|
| 8 |
-
#
|
| 9 |
ENV PATH="/home/user/.local/bin:$PATH"
|
| 10 |
-
|
| 11 |
-
# Đặt thư mục làm việc trong container
|
| 12 |
WORKDIR /app
|
| 13 |
|
| 14 |
-
# Sao chép
|
| 15 |
-
# --chown=user đảm bảo quyền sở hữu cho người dùng 'user'
|
| 16 |
COPY --chown=user . /app
|
| 17 |
|
| 18 |
-
# Cài
|
| 19 |
-
# Đảm bảo đã thêm 'openai' vào requirements.txt
|
| 20 |
RUN pip install --no-cache-dir -r requirements.txt
|
| 21 |
|
| 22 |
-
#
|
| 23 |
ENV NLTK_DATA=/app/nltk_data
|
| 24 |
-
|
| 25 |
-
# Lệnh tải NLTK stopwords (chỉ chạy một lần trong quá trình build Docker)
|
| 26 |
-
# Điều này giúp đảm bảo stopwords có sẵn khi ứng dụng chạy
|
| 27 |
RUN python -c "import nltk; nltk.download('stopwords', download_dir='/app/nltk_data')"
|
| 28 |
|
| 29 |
-
#
|
| 30 |
-
ARG OPENAI_API_KEY
|
| 31 |
-
ENV OPENAI_API_KEY=${OPENAI_API_KEY}
|
| 32 |
-
|
| 33 |
-
# Expose cổng mà Streamlit app sẽ lắng nghe (Hugging Face Spaces dùng 7860 cho Docker/Streamlit)
|
| 34 |
EXPOSE 7860
|
| 35 |
|
| 36 |
-
#
|
| 37 |
-
|
| 38 |
-
# --server.address 0.0.0.0 để lắng nghe tất cả các giao diện mạng
|
| 39 |
-
CMD ["streamlit", "run", "app.py", "--server.port", "7860", "--server.address", "0.0.0.0"]
|
|
|
|
| 1 |
+
# --- Dockerfile ---
|
| 2 |
+
|
| 3 |
+
# Sử dụng image Python nhẹ có sẵn Streamlit
|
| 4 |
FROM python:3.9-slim-buster
|
| 5 |
|
| 6 |
+
# Tạo user không phải root
|
| 7 |
RUN useradd -m -u 1000 user
|
| 8 |
USER user
|
| 9 |
|
| 10 |
+
# Thiết lập môi trường
|
| 11 |
ENV PATH="/home/user/.local/bin:$PATH"
|
|
|
|
|
|
|
| 12 |
WORKDIR /app
|
| 13 |
|
| 14 |
+
# Sao chép mã nguồn
|
|
|
|
| 15 |
COPY --chown=user . /app
|
| 16 |
|
| 17 |
+
# Cài thư viện Python
|
|
|
|
| 18 |
RUN pip install --no-cache-dir -r requirements.txt
|
| 19 |
|
| 20 |
+
# Tải trước NLTK stopwords để tránh phải tải lại khi chạy
|
| 21 |
ENV NLTK_DATA=/app/nltk_data
|
|
|
|
|
|
|
|
|
|
| 22 |
RUN python -c "import nltk; nltk.download('stopwords', download_dir='/app/nltk_data')"
|
| 23 |
|
| 24 |
+
# Mở cổng 7860 cho Streamlit (Hugging Face Spaces)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
EXPOSE 7860
|
| 26 |
|
| 27 |
+
# Chạy ứng dụng Streamlit
|
| 28 |
+
CMD ["streamlit", "run", "app.py", "--server.port", "7860", "--server.address", "0.0.0.0"]
|
|
|
|
|
|