landify-scam-detector / Dockerfile
anh-khoa-nguyen
fix hoai di
c4ea8b1
# 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"]