DeduplicationImage / Dockerfile
w4nn4b3M4ST3R's picture
new version
bbcd7db
# STAGE 1: Môi trường Build C++
FROM python:3.10-slim AS builder
RUN apt-get update && apt-get install -y \
build-essential \
cmake \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
RUN pip install pybind11
# Copy file CMakeLists.txt
COPY CMakeLists.txt .
# Copy thư mục src
COPY src/ ./src/
RUN cmake -B build -S . \
-DCMAKE_BUILD_TYPE=Release \
-DPYBIND11_TEST=OFF \
-Dpybind11_DIR=$(python -c "import pybind11; print(pybind11.get_cmake_dir())")
RUN cmake --build build --config Release --parallel
# STAGE 2: Môi trường Runtime Python
FROM python:3.10-slim
WORKDIR /app
ENV TORCH_HOME=/app/models
ENV XDG_CACHE_HOME=/app/cache
# Copy requirements.txt (nằm ở root)
COPY requirements.txt .
RUN pip install --no-cache-dir --default-timeout=1000 -r requirements.txt
COPY app/preload_models.py .
RUN python preload_models.py
COPY app/ ./app/
# Copy file .so đã build từ stage 1
COPY --from=builder /app/build/MyHash.*.so ./app/
# Chuyển vào thư mục làm việc
WORKDIR /app/app
EXPOSE 7860
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"]