環境
周辺事情によりやや古い環境ですが:
# 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も影響を受けていたので、関連があるかは不明ですが、一応あげておきました。