ImportError: libGL.so.1 при запуске контейнера Docker с OpenCV

avatar
anonymous_helix
1 июля 2021 в 18:48
1123
1
-2

Я получаю следующую ошибку при запуске контейнера Docker:

  W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such fi
le or directory
2021-07-01 18:39:36.985933: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
Traceback (most recent call last):
  File "/opt/program/analyze", line 4, in <module>
    from analysis.image_data_analyzer import ImageDataAnalyzer
  File "/opt/program/analysis/image_data_analyzer.py", line 1, in <module>
    from alibi_detect.utils.saving import save_detector, load_detector
  File "/usr/local/lib/python3.6/site-packages/alibi_detect/__init__.py", line 1, in <module>
    from . import ad, cd, models, od, utils
  File "/usr/local/lib/python3.6/site-packages/alibi_detect/od/__init__.py", line 10, in <module>
    from .llr import LLR
  File "/usr/local/lib/python3.6/site-packages/alibi_detect/od/llr.py", line 13, in <module>
    from alibi_detect.utils.perturbation import mutate_categorical
  File "/usr/local/lib/python3.6/site-packages/alibi_detect/utils/perturbation.py", line 1, in <module>
    import cv2
  File "/usr/local/lib64/python3.6/site-packages/cv2/__init__.py", line 5, in <module>
    from .cv2 import *
ImportError: libGL.so.1: cannot open shared object file: No such file or directory

Я попытался выполнить следующие команды, как предложено здесь.

RUN apt-get update ##[edited]
RUN apt-get install ffmpeg libsm6 libxext6  -y

Однако я получаю сообщение об ошибке /bin/sh: apt-get: command not found. Я также пытался установить libGL с помощью yum, но это тоже не сработало. Родительским образом этого контейнера является linux. Любые идеи о том, как решить эту ошибку? Спасибо.

Источник
Christoph Rackwitz
1 июля 2021 в 18:51
0

docker не позволяет вам использовать различные ресурсы, одним из которых является графический дисплей (OpenGL). это известная проблема. не используйте докер, если вам не нужно.

anonymous_helix
1 июля 2021 в 18:56
0

для проекта требуется докер. кажется, можно запустить opengl в докере (coderhelper.com/questions/55313610/…), но команды apt-get у меня не работают.

Christoph Rackwitz
1 июля 2021 в 19:02
0

apt-get: command not found означает, что у вас нет apt. что это за дистрибутив?

anonymous_helix
1 июля 2021 в 19:12
0

как узнать это с помощью докера?

Christoph Rackwitz
1 июля 2021 в 19:17
0

lsb-release и uname, возможно, с дополнительными аргументами cyberciti.biz/faq/how-to-check-os-version-in-linux-command-line

Charles Duffy
5 июля 2021 в 22:01
0

Что такое строка FROM вверху вашего Dockerfile? (Действительно, для минимального воспроизводимого примера вы должны указать весь файл Dockerfile в самом вопросе).

Ответы (1)

avatar
anonymous_helix
5 июля 2021 в 22:00
0

Проблема решена путем добавления этой строки в Dockerfile: RUN yum -y install mesa-libGL

Charles Duffy
5 июля 2021 в 22:02
0

Это означает, что вы используете дистрибутив на основе RPM вместо дистрибутива на основе Debian. (yum подходит для Red Hat / Fedora / и т. д.; apt-get — для Debian / Ubuntu / и т. д.).