Я пытаюсь использовать Docker compose для интеграции моего приложения в систему. В частности, мой контейнер - это детектор объектов, реализованный с использованием m xnet и GluonCV, и я хочу запустить его на графическом процессоре.
Для создания контейнера я использую этот файл Docker:
FROM nvidia/cuda:10.0-runtime-ubuntu18.04
ENV DEBIAN_FRONTEND=noninteractive
# SYSTEM PACKAGES
RUN apt-get update -y && apt-get install -y --fix-missing \
build-essential \
wget \
libopencv-dev \
pkg-config \
python-dev \
python-pip \
python3-dev \
python3-pip \
python3-numpy \
&& apt-get clean && rm -rf /tmp/* /var/tmp/*
WORKDIR src
COPY src/requirements_all.txt ./requirements_all.txt
RUN pip3 install --no-cache-dir -r requirements_all.txt
ADD src/ .
CMD [ "python3", "main.py"]
и этот "needs_all.txt" для необходимых пакетов:
colorlog==4.1.0
imutils==0.5.3
requests==2.22.0
opencv-python==4.1.0.25
gluoncv==0.6.0
mxnet-cu100mkl==1.5.1.post0
numpy==1.17.4
pika==1.1.0
Я построил образ нормально (docker_obj_det_00), это релевантная часть docker -compose. yml:
version: "3"
services:
objects-recognizer:
build: ./object-rec
image: docker_obj_det_00
restart: on-failure
privileged: true
environment:
[...]
depends_on:
[...]
Проблема в том, что, когда я пытаюсь создать среду, запустив:
docker-compose -f docker-compose.yml up --build
Я получаю сообщение об ошибке:
File "/usr/lib/python3.6/ctypes/__init__.py", line 348, in __init__
self._handle = _dlopen(self._name, mode)
OSError: libcuda.so.1: cannot open shared object file: No such file or directory
Итак, я полагаю, что при создании моего контейнера есть некоторые недостающие библиотеки, любая udea, как это решить?