Как я могу использовать conda env в образе docker? - PullRequest
0 голосов
/ 07 августа 2020

Я участвовал в конкурсе по обнаружению объектов по спутниковым снимкам. Я обучил модель с помощью набора инструментов AerialDetection для соревнований. Мне нужно создать изображение docker, которое будет запускать эту модель напрямую. Инструментарий AerialDetection работает в среде Anaconda. Я исследовал концепцию среды Anaconda в Docker, но прочитал, что она не очень эффективна. Итак, я создал Dockerfile для установки этого инструментария в прямом образе docker. Dockerfile находится ниже.

FROM ubuntu:16.04

ARG PYTORCH="1.1.0"
ARG CUDA="10.0"
ARG CUDNN="7"


FROM pytorch/pytorch:${PYTORCH}-cuda${CUDA}-cudnn${CUDNN}-devel

ENV TORCH_CUDA_ARCH_LIST="6.0 6.1 7.0+PTX"
ENV TORCH_NVCC_FLAGS="-Xfatbin -compress-all"
ENV CMAKE_PREFIX_PATH="$(dirname $(which conda))/../"

RUN apt-get update && apt-get install -y git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# Install MMCV
RUN pip install mmcv==0.5.9


# Install AerialDetection
RUN conda clean --all
RUN pip install cython
RUN git clone https://github.com/dingjiansw101/AerialDetection.git /AerialDetection
WORKDIR /AerialDetection
ENV FORCE_CUDA="1"
RUN chmod +x compile.sh
RUN ./compile.sh
RUN pip install -r requirements.txt
RUN python setup.py develop

#Install DOTA_Devkit
RUN apt-get install swig
WORKDIR /AerialDetection/DOTA_devkit
RUN swig -c++ -python polyiou.i
RUN python setup.py build_ext --inplace

#Adding the test code, config file and model to the image
WORKDIR /AerialDetection
COPY test.py .
COPY model.pth .
COPY config.py .

ENTRYPOINT ["python3", "/AerialDetection/test.py"]

Код test.py должен находиться в папке набора инструментов AerialDetection (для загрузки необходимых библиотек). Будет ли это точное описание ENTRYPOINT? Работает ли test.py , когда образ запускается с помощью команды docker run? Правильно ли я создал файл докеров? Спасибо ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...