forked from openMVG/openMVG
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dockerfile_CUDA
97 lines (85 loc) · 2.93 KB
/
Dockerfile_CUDA
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
FROM nvidia/cuda:11.4.1-devel-ubuntu20.04
ARG OPENCV_VERSION=4.5.4
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get upgrade -y &&\
# Install build tools, build dependencies and python
apt-get install -y \
python3-pip \
build-essential \
cmake \
git \
wget \
unzip \
yasm \
pkg-config \
libswscale-dev \
libtbb2 \
libtbb-dev \
libjpeg-dev \
libpng-dev \
libtiff-dev \
libavformat-dev \
libpq-dev \
libxine2-dev \
libglew-dev \
libtiff5-dev \
zlib1g-dev \
libjpeg-dev \
libavcodec-dev \
libavformat-dev \
libavutil-dev \
libpostproc-dev \
libswscale-dev \
libeigen3-dev \
libtbb-dev \
libgtk2.0-dev \
pkg-config \
## Python
python3-dev \
python3-numpy \
&& rm -rf /var/lib/apt/lists/*
RUN cd /opt/ &&\
# Download and unzip OpenCV and opencv_contrib and delte zip files
wget https://github.com/opencv/opencv/archive/$OPENCV_VERSION.zip &&\
unzip $OPENCV_VERSION.zip &&\
rm $OPENCV_VERSION.zip &&\
wget https://github.com/opencv/opencv_contrib/archive/$OPENCV_VERSION.zip &&\
unzip ${OPENCV_VERSION}.zip &&\
rm ${OPENCV_VERSION}.zip &&\
# Create build folder and switch to it
mkdir /opt/opencv-${OPENCV_VERSION}/build && cd /opt/opencv-${OPENCV_VERSION}/build
# Cmake configure
RUN apt-get update && apt-get install -y ccache
ENV CCACHE_DIR "/ccache"
ARG threads=10
RUN cd /opt/opencv-${OPENCV_VERSION}/build && cmake \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DOPENCV_EXTRA_MODULES_PATH=/opt/opencv_contrib-${OPENCV_VERSION}/modules \
-DWITH_CUDA=ON \
-DCMAKE_BUILD_TYPE=RELEASE \
-DCMAKE_INSTALL_PREFIX=/usr/local \
# Extra
-DENABLE_FAST_MATH=1 \
-DWITH_EIGEN=ON \
-DBUILD_opencv_python3=ON \
-D WITH_CUDA=ON \
-D WITH_CUBLAS=ON \
-D CUDA_FAST_MATH=1 \
-D OPENCV_ENABLE_NONFREE=ON \
..
RUN cd /opt/opencv-${OPENCV_VERSION}/build && \
# Make
make -j"$threads" && \
# Install to /usr/local/lib
make install && \
ldconfig
ADD requirments.txt /tmp
RUN pip install -r /tmp/requirments.txt
RUN apt-get update && apt-get install libpng-dev libjpeg-dev libtiff-dev libxxf86vm1 libxxf86vm-dev libxi-dev libxrandr-dev graphviz -y
ADD . /opt/openMVG
RUN cd /opt/openMVG && git submodule update --init --recursive
RUN mkdir /opt/openmvg_build
WORKDIR /opt/openmvg_build
RUN cmake -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_BUILD_TYPE=RELEASE -DOpenCV_DIR="../opencv_build" -DOpenMVG_USE_OPENCV=ON -DOpenMVG_USE_OCVSIFT=ON ../openMVG/src/
# RUN cmake --build . --target install -- -j"$threads"
# TAG=streetview:openmvg && sudo docker build --build-arg=20 -t $TAG . && sudo docker run -it -v ~/streetview:/home/ -v $CCACHE_DIR:/ccache $TAG /bin/bash