Spaces:
Paused
Paused
| # syntax = docker/dockerfile:1.2 | |
| FROM continuumio/miniconda3:24.1.2-0 | |
| # install os dependencies including xauth for xvfb | |
| RUN mkdir -p /usr/share/man/man1 | |
| RUN apt-get update && \ | |
| DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends -y \ | |
| ca-certificates \ | |
| curl \ | |
| vim \ | |
| sudo \ | |
| default-jre \ | |
| git \ | |
| gcc \ | |
| build-essential \ | |
| wget \ | |
| xvfb \ | |
| xauth \ | |
| && rm -rf /var/lib/apt/lists/* | |
| RUN conda install python=3.8.13 -y | |
| # Install Python and model dependencies | |
| RUN pip install openmim | |
| RUN pip install torch==2.0.0 | |
| RUN mim install mmcv-full==1.7.0 | |
| RUN pip install mmdet==2.27.0 | |
| RUN pip install torchserve | |
| RUN pip install mmpose==0.29.0 | |
| RUN pip install torchvision==0.15.1 | |
| RUN pip install numpy==1.24.4 scikit-image scipy opencv-python requests pyyaml flask glfw PyOpenGL Pillow shapely tqdm langid | |
| RUN pip install fastapi==0.100.0 | |
| RUN pip install uvicorn==0.22.0 | |
| RUN pip install requests==2.31.0 | |
| # bugfix for xtcocoapi, a dependency of mmpose | |
| RUN git clone https://github.com/jin-s13/xtcocoapi.git | |
| WORKDIR xtcocoapi | |
| RUN pip install -r requirements.txt | |
| RUN python setup.py install | |
| WORKDIR / | |
| # prep torchserve | |
| RUN mkdir -p /home/torchserve/model-store | |
| RUN wget https://github.com/facebookresearch/AnimatedDrawings/releases/download/v0.0.1/drawn_humanoid_detector.mar -P /home/torchserve/model-store/ | |
| RUN wget https://github.com/facebookresearch/AnimatedDrawings/releases/download/v0.0.1/drawn_humanoid_pose_estimator.mar -P /home/torchserve/model-store/ | |
| COPY config.properties /home/torchserve/config.properties | |
| # Create a non-root user with UID 1000 | |
| RUN adduser --disabled-password --gecos '' --uid 1000 appuser | |
| WORKDIR /app | |
| COPY setup.py /app/setup.py | |
| COPY animated_drawings /app/animated_drawings | |
| COPY app.py /app/app.py | |
| COPY examples /app/examples | |
| # COPY requirements.txt /app/requirements.txt | |
| RUN pip install -e . | |
| # RUN pip install -r requirements.txt | |
| # Pre-create directories and set permissions | |
| RUN mkdir -p uploads_gradio outputs_gradio flagged && \ | |
| chown -R appuser:appuser /app | |
| USER appuser | |
| EXPOSE 7860 | |
| # Start TorchServe, warm-up models, then run the app. | |
| CMD sh -c "\ | |
| torchserve --start --ncs --ts-config /home/torchserve/config.properties && \ | |
| sleep 15 && \ | |
| # Warm-up requests with a small test image to load models into memory. | |
| curl -X POST http://localhost:8080/predictions/drawn_humanoid_detector -F image=@/app/examples/test.png && \ | |
| curl -X POST http://localhost:8080/predictions/drawn_humanoid_pose_estimator -F image=@/app/examples/test.png && \ | |
| xvfb-run -a python app.py \ | |
| " |