-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
138 lines (133 loc) · 3.63 KB
/
Dockerfile
File metadata and controls
138 lines (133 loc) · 3.63 KB
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
FROM ubuntu:16.04
ENV GRPC_RELEASE_TAG v1.8.x
ENV OPENCV_RELEASE_TAG 3.4.0
ENV OPENCV_BUILD_TYPE DEBUG
# OpenCV
RUN \
# Install dependencies
apt-get update && \
apt-get install -y \
wget \
unzip \
libtbb2 \
libtbb-dev \
build-essential \
cmake \
git \
pkg-config \
libjpeg8-dev \
libtiff5-dev \
libjasper-dev \
libpng12-dev \
libgtk2.0-dev \
libavcodec-dev \
libavformat-dev \
libswscale-dev \
libv4l-dev \
libatlas-base-dev \
gfortran \
libhdf5-dev \
python3-pip && \
# Download OpenCV
cd ~ && \
wget -q https://github.com/Itseez/opencv/archive/${OPENCV_RELEASE_TAG}.zip -O opencv.zip && \
unzip -q opencv.zip && \
mv ~/opencv-${OPENCV_RELEASE_TAG}/ ~/opencv/ && \
rm -rf ~/opencv.zip && \
# Download OpenCV Contrib
cd ~ && \
wget -q https://github.com/opencv/opencv_contrib/archive/${OPENCV_RELEASE_TAG}.zip -O opencv_contrib.zip && \
unzip -q opencv_contrib.zip && \
mv ~/opencv_contrib-${OPENCV_RELEASE_TAG} ~/opencv_contrib/ && \
rm -rf ~/opencv_contrib.zip && \
# Install python dependency
pip3 install --upgrade pip && \
pip3 install numpy && \
# Compile OpenCV
cd ~/opencv && \
mkdir build && \
cd build && \
cmake -D CMAKE_BUILD_TYPE=${OPENCV_BUILD_TYPE} \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_C_EXAMPLES=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D BUILD_EXAMPLES=OFF \
-D BUILD_OPENCV_WORLD=ON \
.. && \
cd ~/opencv/build && \
make -j $(nproc) && \
make install && \
ldconfig && \
# Clean up
apt-get autoclean && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
rm -rf ~/opencv/ && \
rm -rf ~/opencv_contrib/
# gRPC
RUN \
# Install dependencies
apt-get update && \
apt-get install -y \
build-essential \
autoconf \
libtool \
git \
pkg-config \
curl \
automake \
libtool \
curl \
make \
g++ \
unzip && \
# Download gRPC
git clone -b ${GRPC_RELEASE_TAG} https://github.com/grpc/grpc ~/grpc && \
cd ~/grpc && \
git submodule update --init && \
# Install protobuf
cd ~/grpc/third_party/protobuf && \
./autogen.sh && \
./configure --enable-shared && \
make -j$(nproc) && \
make -j$(nproc) check && \
make install && \
make clean && \
ldconfig && \
# Install gRPC
cd ~/grpc && \
make -j$(nproc) && \
make install && \
make clean && \
ldconfig && \
# Clean up
apt-get autoclean && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
rm -rf ~/grpc/
# AWS SDK
RUN \
# Install dependencies
apt-get update && \
apt-get install -y \
libcurl4-openssl-dev \
libssl-dev \
uuid-dev \
zlib1g-dev \
libpulse-dev && \
# Install AWS SDK for C++
git clone https://github.com/aws/aws-sdk-cpp.git ~/aws-sdk && \
cd ~/aws-sdk && \
mkdir build && \
cd build && \
# Only install SDK for S3
cmake -DBUILD_ONLY="s3" .. && \
make -j$(nproc) && \
make install && \
ldconfig && \
# Clean up
apt-get autoclean && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
rm -rf ~/aws-sdk/