| # Sử dụng Python 3.12 làm base image | |
| FROM python:3.12 | |
| # Tạo user không phải root để tăng cường bảo mật | |
| RUN useradd -m -u 1000 user | |
| USER user | |
| # Thiết lập biến môi trường PATH để bao gồm các gói cài đặt cục bộ của user | |
| ENV PATH="/home/user/.local/bin:${PATH}" | |
| # ENV ENABLE_ADMIN_CHAT_ACCESS=true # Giữ lại nếu Space của bạn sử dụng tính năng này | |
| # Đặt thư mục làm việc trong container | |
| WORKDIR /app | |
| # Sao chép file requirements.txt và cài đặt các dependencies | |
| # Sử dụng --chown=user để đảm bảo user sở hữu các file này | |
| COPY --chown=user ./requirements.txt requirements.txt | |
| RUN pip install --no-cache-dir --upgrade -r requirements.txt | |
| # Sao chép toàn bộ mã nguồn ứng dụng vào thư mục làm việc | |
| COPY --chown=user . /app | |
| # Lệnh để chạy ứng dụng FastAPI khi container khởi động | |
| # Sử dụng Uvicorn, lắng nghe trên host 0.0.0.0 và port 7860 theo yêu cầu | |
| CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"] |