Spaces:
Sleeping
Sleeping
File size: 1,745 Bytes
f606230 c4ea8b1 f606230 589b6e8 d8d8610 f708a1a 589b6e8 f606230 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# 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"] |