chatbot / Dockerfile
huylaughmad's picture
Update Dockerfile
0911a71 verified
raw
history blame
1.17 kB
# Sử dụng image Python 3.11 nhẹ
FROM python:3.11-slim
# Thiết lập thư mục làm việc
WORKDIR /app
# Cài đặt các công cụ cần thiết: gosu để chạy dưới quyền user app
RUN apt-get update && apt-get install -y --no-install-recommends \
gosu \
&& rm -rf /var/lib/apt/lists/*
# Tạo user app và cấp quyền cho /app
RUN useradd -m -u 1000 app && \
chown -R app:app /app && \
chmod -R 775 /app
# Tạo thư mục /app/data và cấp quyền
RUN mkdir -p /app/data && \
chown -R app:app /app/data && \
chmod -R 775 /app/data
# Sao chép requirements.txt và cài đặt thư viện
COPY --chown=app:app requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Sao chép toàn bộ mã nguồn
COPY --chown=app:app . .
# Chuyển sang user app
USER app
# Đặt umask để file mới được tạo với quyền 664 (rw-rw-r--)
# Chạy Gunicorn với worker gthread, 2 worker, 4 thread mỗi worker
CMD ["sh", "-c", "umask 002 && gunicorn -b 0.0.0.0:7860 --workers 1 --worker-class=sync --timeout 60 app:app"]
# Mở cổng 7860 (Hugging Face Spaces yêu cầu cổng này)
EXPOSE 7860