42 lines
1.3 KiB
Docker
42 lines
1.3 KiB
Docker
FROM nvidia/cuda:12.4.1-cudnn-runtime-ubuntu22.04
|
|
|
|
# Prevent interactive prompts during install
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
|
|
# Install system dependencies
|
|
RUN apt-get update && apt-get install -y \
|
|
python3 \
|
|
python3-pip \
|
|
ffmpeg \
|
|
curl \
|
|
git \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /app
|
|
|
|
# Install Python dependencies (PyTorch version, with pip cache for faster rebuilds)
|
|
COPY requirements.txt /app/
|
|
RUN --mount=type=cache,target=/root/.cache/pip \
|
|
pip3 install -r requirements.txt
|
|
|
|
# Clone TransNetV2 repo for the PyTorch model code only (no LFS needed)
|
|
RUN GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/soCzech/TransNetV2.git /app/TransNetV2
|
|
|
|
# Download weights from HuggingFace (more reliable than GitHub LFS)
|
|
RUN python3 -c "from huggingface_hub import hf_hub_download; hf_hub_download('Sn4kehead/TransNetV2', 'transnetv2-pytorch-weights.pth', local_dir='/app/weights')"
|
|
|
|
COPY app.py /app/
|
|
|
|
# Default environment variables
|
|
ENV TRANSNET_THRESHOLD=0.5
|
|
ENV TRANSNET_MIN_SCENE_LENGTH=1.0
|
|
ENV TRANSNET_WEIGHTS=/app/weights/transnetv2-pytorch-weights.pth
|
|
ENV PYTHONPATH=/app/TransNetV2/inference-pytorch
|
|
|
|
EXPOSE 5005
|
|
|
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
|
|
CMD curl -f http://localhost:5005/health || exit 1
|
|
|
|
CMD ["python3", "app.py"]
|