carDamageDetection / Dockerfile
reidddd's picture
update import detectron2
602c04e
raw
history blame
1.9 kB
# Stage 1: Base Python image
FROM python:3.9 as base
# Create a user and set environment variables
RUN useradd -m -u 1000 user
USER user
ENV PATH="/home/user/.local/bin:$PATH"
# Set working directory
WORKDIR /app
# Copy Python dependencies and install them
COPY --chown=user ./requirements.txt requirements.txt
RUN pip install --no-cache-dir --upgrade -r requirements.txt
RUN pip install 'git+https://github.com/facebookresearch/detectron2.git'
# Copy application files
COPY --chown=user . /app
# Stage 2: CUDA and Detectron2
FROM nvidia/cuda:11.1.1-cudnn8-devel-ubuntu18.04 as cuda
# Use noninteractive mode for apt-get
ENV DEBIAN_FRONTEND=noninteractive
# Install system dependencies
RUN apt-get update && apt-get install -y \
python3-opencv \
python3-pip \
ca-certificates \
python3-dev \
git \
wget \
sudo \
ninja-build
# Link Python and Pip commands
RUN ln -sv /usr/bin/python3 /usr/bin/python && ln -sv /usr/bin/pip3 /usr/bin/pip
# Copy dependencies from the base stage
COPY --from=base /home/user/.local /home/user/.local
COPY --from=base /app /app
# Install additional Python packages
RUN pip install --no-cache-dir tensorboard cmake onnx
RUN pip install --no-cache-dir 'git+https://github.com/facebookresearch/fvcore'
# Clone Detectron2 repository
RUN git clone https://github.com/facebookresearch/detectron2 detectron2_repo
# Set environment variables for Detectron2
ENV FORCE_CUDA="1"
ARG TORCH_CUDA_ARCH_LIST="Kepler;Kepler+Tesla;Maxwell;Maxwell+Tegra;Pascal;Volta;Turing"
ENV TORCH_CUDA_ARCH_LIST="${TORCH_CUDA_ARCH_LIST}"
ENV FVCORE_CACHE="/tmp"
# Install Detectron2 in editable mode
RUN pip install --no-cache-dir -e detectron2_repo
# Set the working directory and environment
USER user
ENV HOME=/home/user
WORKDIR $HOME/app
# Expose application port and set default command
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]