dockerfileでpython/opencv環境を構築する。
dockerにpython3.7とOpenCV3.4.3の環境を構築しました。
この環境をdockerfileで構築してみました。
作業環境
・Ubuntu18.04.1
・Docker-ce 18.06.1
作業内容
dockerfile
プロキシ設定が必要ない場合は設定部分を消してください。
FROM ubuntu:16.04 MAINTAINER kina <kina@kinacon.com> ARG PYTHON_VERSION=3.7.0 ARG OPENCV_VERSION=3.4.3 # プロキシ設定 ENV USER=xxxx \ PASS=xxxx \ PROXY=xxxx.xxxx.xxxx.co.jp:8080 # プロキシ設定(pip) ENV HTTP_PROXY=http://$USER:$PASS@$PROXY/ \ HTTPS_PROXY=http://$USER:$PASS@$PROXY/ # プロキシ設定(apt) RUN echo "Acquire::http::proxy ${USER}:${PASS}@${PROXY}/;" \ >> /etc/apt/apt.conf RUN apt update && \ apt install -y --no-install-recommends \ make \ cmake \ gcc \ g++ \ unzip \ wget \ build-essential \ zlib1g-dev \ libffi-dev \ libssl-dev && \ apt clean && \ rm -rf /var/lib/apt/lists/* # プロキシ設定(wget) RUN ( \ echo "https_proxy=http://${USER}:${PASS}@${PROXY}"; \ echo "use_proxy=on"; \ ) | tee /etc/wgetrc # python3 インストール WORKDIR /tmp/python3 RUN wget --no-check-certificate https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tgz && \ tar zxf Python-${PYTHON_VERSION}.tgz && \ rm Python-${PYTHON_VERSION}.tgz WORKDIR /tmp/python3/Python-${PYTHON_VERSION} RUN ./configure && make altinstall && make clean WORKDIR /usr/local/bin/ RUN ln -s /usr/local/bin/$(find -name python3.[0-9]) /bin/python3 RUN ln -s /usr/local/bin/$(find -name pip3.[0-9]) /bin/pip3 RUN pip3 install --upgrade pip \ numpy # OpenCV3 インストール RUN apt update && \ apt install -y --no-install-recommends \ ca-certificates \ pkg-config \ libgtk2.0-dev \ libjpeg-dev libpng-dev \ ffmpeg \ libavcodec-dev \ libavformat-dev \ libavresample-dev \ libswscale-dev \ libv4l-dev \ libtbb-dev && \ apt clean && \ rm -rf /var/lib/apt/lists/* RUN mkdir -p /tmp/opencv WORKDIR /tmp/opencv RUN wget https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip && \ unzip ${OPENCV_VERSION}.zip -d . && \ mkdir /tmp/opencv/opencv-${OPENCV_VERSION}/build && \ rm ${OPENCV_VERSION}.zip WORKDIR /tmp/opencv/opencv-${OPENCV_VERSION}/build/ RUN cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D BUILD_TESTS=OFF \ -D CMAKE_BUILD_TYPE=RELEASE \ -D BUILD_PERF_TESTS=OFF \ -D WITH_FFMPEG=ON \ -D WITH_TBB=ON .. && \ make -j "$(nproc)" && \ make install && \ make clean WORKDIR /tmp
dockerfile のビルド
dockerfileが置いてあるディレクトリで実行
イメージの名前は「py3/cv3」
docker build -t py3/cv3 .
pythonとOpenCVのバージョンは引数で指定できるようにしました。
・pythonのソースはここで確認。
https://www.python.org/ftp/python/
・OpenCVのソースはここで確認。
Releases - OpenCV library
例えば、python3.6.0 OpenCV3.2.0の場合は--build-argで引数を記載する
docker build --build-arg PYTHON_VERSION=3.6.0 --build-arg OPENCV_VERSION=3.2.0 -t py36/cv32 .
以上。