5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

OpenCVのDockerfile作ってみた

Last updated at Posted at 2020-06-03

はじめに

Dockerfile作る練習とたまたま作る機会があったので、こちらで供養します。
フルオプションではないです。。。そんなことはできないです。
ただし、opencv_contlibはインストールしています。

修正点などあればお気軽に。

Dockerfile

Ubuntu 16.04

FROM nvidia/cuda:10.1-cudnn7-devel-ubuntu16.04

ENV DEBIAN_FRONTEND=noninteractive

ARG python_version="3.7.3"
ARG version="4.2.0"

# like tool
RUN apt-get update && apt-get -y upgrade &&\
    apt-get install -y --no-install-recommends \
    vim unzip byobu wget tree git cmake\
    && rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*

# install python3.7.3
RUN apt-get update && apt-get install -y zlib1g-dev libssl-dev libffi-dev build-essential \
    checkinstall libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev \
    libgdbm-dev libc6-dev libbz2-dev &&\
    rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*

RUN mkdir /workspace
WORKDIR /workspace

# install python3
RUN wget -c https://www.python.org/ftp/python/${python_version}/Python-${python_version}.tgz &&\
    tar zxvf Python-${python_version}.tgz && cd Python-${python_version} &&\
    ./configure --enable-optimizations --enable-shared CFLAGS=-fPIC &&\
    make -j8 && make install && ldconfig && cd .. && rm Python-${python_version}.tgz &&\
    rm -rf Python-${python_version}
RUN pip3 install -U pip
RUN pip3 install -U setuptools

# install opencv
RUN pip3 install -U numpy
RUN apt-get update && apt-get install -y --no-install-recommends \
    gcc g++ libpng-dev libjpeg-dev libopenexr-dev libtiff-dev libwebp-dev \
    libgtk-3-dev &&\
    rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*

RUN wget -c https://github.com/opencv/opencv/archive/${version}.tar.gz &&\
    tar -zxvf ${version}.tar.gz && rm ${version}.tar.gz
RUN mkdir /workspace/opencv-${version}/build

## opencv_contrib
RUN wget -c https://github.com/opencv/opencv_contrib/archive/${version}.tar.gz &&\
    tar -zxvf ${version}.tar.gz && rm /workspace/${version}.tar.gz
WORKDIR /workspace/opencv-${version}/build

## make opencv
RUN cmake -OPENCV_EXTRA_MODULES_PATH=/workspace/opencv_contrib-${version}/modules ..
RUN make -j8 && make install && ldconfig

WORKDIR /
RUN rm -rf workspace/

Ubuntu 20.04

FROM nvidia/cuda:11.8.0-cudnn8-devel-ubuntu20.04

ENV DEBIAN_FRONTEND=noninteractive

ARG OPENCV_VERSION="4.5.5"
ARG PYTHON_VERSION="3.8"

# like tool
RUN apt-get update && apt-get -y upgrade &&\
    apt-get install -y --no-install-recommends \
    vim unzip byobu wget tree git cmake\
    && rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*

# install python
RUN apt-get update && apt-get install -y python3-dev python3-pip &&\
    rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*
RUN pip3 install -U pip

RUN mkdir /workspace
WORKDIR /workspace

# install opencv
RUN pip3 install -U numpy
RUN apt-get update && apt-get install -y --no-install-recommends \
    gcc g++ libpng-dev libjpeg-dev libopenexr-dev libtiff-dev libwebp-dev libgtk-3-dev \
    libavformat-dev libswscale-dev libhdf5-serial-dev qt5-default \
    libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libopenblas-dev libgflags-dev &&\
    rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/*

RUN wget -c https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.tar.gz &&\
    tar -zxvf ${OPENCV_VERSION}.tar.gz && rm ${OPENCV_VERSION}.tar.gz
RUN mkdir /workspace/opencv-${OPENCV_VERSION}/build

## opencv_contrib
RUN wget -c https://github.com/opencv/opencv_contrib/archive/${OPENCV_VERSION}.tar.gz &&\
    tar -zxvf ${OPENCV_VERSION}.tar.gz && rm /workspace/${OPENCV_VERSION}.tar.gz
WORKDIR /workspace/opencv-${OPENCV_VERSION}/build

## make opencv
RUN cmake -D CMAKE_BUILD_TYPE=RELEASE \
        -D CMAKE_INSTALL_PREFIX=/usr/local \
        -D PYTHON3_PACKAGES_PATH=/usr/local/lib/python${PYTHON_VERSION}/dist-packages \
        -D WITH_TBB=ON \
        -D ENABLE_FAST_MATH=1 \
        -D CUDA_FAST_MATH=1 \
        -D WITH_CUBLAS=1 \
        -D WITH_CUDA=ON \
        -D WITH_CUDNN=ON \
        -D BUILD_opencv_cudacodec=OFF \
        -D OPENCV_DNN_CUDA=ON \
        -D CUDA_ARCH_BIN="7.5, 8.0" \
        -D WITH_V4L=ON \
        -D WITH_QT=ON \
        -D WITH_OPENGL=ON \
        -D WITH_GSTREAMER=ON \
        -D OPENCV_GENERATE_PKGCONFIG=ON \
        -D OPENCV_ENABLE_NONFREE=ON \
        -D OPENCV_EXTRA_MODULES_PATH=/workspace/opencv_contrib-${OPENCV_VERSION}/modules \
        -D INSTALL_PYTHON_EXAMPLES=OFF \
        -D INSTALL_C_EXAMPLES=OFF \
        -D BUILD_opencv_python2=OFF \
        -D BUILD_opencv_python3=ON \
        -D BUILD_EXAMPLES=OFF .. &&\
    make -j20 && make install && ldconfig

動作確認

動作確認は、こちらのサイトのコードで確認しました。

なんとなくのブログ:OpenCVが4.0になっていたのでcontribも含めてコンパイルしてみる。

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?