Spaces:
Sleeping
Sleeping
| # Sử dụng ảnh base Python 3.9, phù hợp với project của chúng ta | |
| FROM python:3.9 | |
| # Thiết lập thư mục làm việc bên trong container | |
| WORKDIR /code | |
| # Cài đặt libgomp1, một phụ thuộc có thể cần cho PyTorch (giữ lại từ ví dụ của bạn, rất tốt) | |
| RUN apt-get update && apt-get install -y libgomp1 default-jdk && rm -rf /var/lib/apt/lists/* | |
| # Thiết lập biến môi trường để chỉ định thư mục cache | |
| # Chúng ta sẽ tạo một thư mục .cache bên trong thư mục làm việc /code | |
| ENV HF_HOME=/code/.cache | |
| RUN mkdir -p /code/.cache && chmod 777 /code/.cache | |
| # Sao chép file requirements.txt vào trước để tận dụng cache của Docker | |
| COPY ./requirements.txt /code/requirements.txt | |
| # Cài đặt các thư viện từ requirements.txt | |
| # KHÁC BIỆT QUAN TRỌNG: Chúng ta bỏ cờ --no-deps. | |
| # Lý do: Các thư viện như transformers, torch có rất nhiều phụ thuộc con. | |
| # Bỏ cờ này đi để pip tự động cài đặt tất cả những gì cần thiết, đảm bảo môi trường đầy đủ. | |
| RUN pip install --no-cache-dir -r /code/requirements.txt | |
| # Sao chép toàn bộ code và model của ứng dụng vào container | |
| # Dấu "." đầu tiên là thư mục hiện tại (dự án của bạn) | |
| # Dấu "." thứ hai là thư mục làm việc trong container (/code) | |
| COPY . . | |
| # Expose cổng mà uvicorn sẽ chạy, theo chuẩn của Hugging Face | |
| EXPOSE 7860 | |
| # Lệnh để khởi động ứng dụng FastAPI khi container chạy | |
| # KHÁC BIỆT QUAN TRỌNG: File chính của chúng ta là "app/main.py", | |
| # nên chúng ta phải gọi là "app.main:app". | |
| CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "7860"] |