AI

Docker + opencv-pythonでImportError: libGL.so.1が出て調べたこと

環境

周辺事情によりやや古い環境ですが:

# cat /proc/version
Linux version 4.15.0-54-generic (buildd@lgw01-amd64-014) (gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)) #58-Ubuntu SMP Mon Jun 24 10:55:24 UTC 2019

# docker --version
Docker version 18.09.7, build 2d0083d

opencv-python

こちらでopencv-pythonのRelease historyを確認できます。

グッディーは長らく4.1.1.26を使ってきたのだけど、こちらの記事のテストで4.5.1.48を使ったところ、

import cv2
ImportError: libGL.so.1: cannot open shared object file: No such file or directory

というエラーが発生。OpenCVをPythonで動かそうとしてlibGL.soが無いって言われたけど解決した。という記事の手順で解決したついでにバージョンをさかのぼって確認してみました。

結果

4.2.0.34までは以下のDockerfileで動作 :

FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04

RUN apt-get -y update && \
apt-get install -y build-essential g++-8 libopenblas-dev \
                   libgtk2.0-dev pkg-config python-dev python-numpy \
                   python3-pip

RUN pip3 install opencv-python==4.2.0.34

4.3.0.38以降はDockerfileに以下の変更が必要 :

FROM nvidia/cuda:10.0-cudnn7-devel-ubuntu18.04

RUN apt-get -y update && \
    apt-get install -y build-essential g++-8 libopenblas-dev \
            libgtk2.0-dev pkg-config python-dev python-numpy \
            libgl1-mesa-dev
RUN curl -kL https://bootstrap.pypa.io/get-pip.py | python3

RUN pip3 install opencv-python

pipも影響を受けていたので、関連があるかは不明ですが、一応あげておきました。


   
関連記事
  • Workaround for the instable cv2.solvePnP with flags=cv2.SOLVEPNP_ITERATIVE
  • Docker containerからHostのCamera画像を取得してHostのDisplayに出力する
  • Staticなffmpegがとてもusefulだった話
  • Docker container内でsudoするとsudo: effective uid is not 0と言われる問題が解決 !
  • OpenCV CLAHEのclip limitの意味
  • Docker buildでthe public key is not available: NO_PUBKEY A4B469963BF863CC への対処

    コメントを残す

    *

    CAPTCHA