-
Notifications
You must be signed in to change notification settings - Fork 22
/
Dockerfile
86 lines (68 loc) · 3.24 KB
/
Dockerfile
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
FROM ubuntu:21.04
EXPOSE 3000
ENV DEBIAN_FRONTEND noninteractive
USER root
# Use old-releases for 21.04
RUN printf "deb http://old-releases.ubuntu.com/ubuntu/ hirsute main restricted\ndeb http://old-releases.ubuntu.com/ubuntu/ hirsute-updates main restricted\ndeb http://old-releases.ubuntu.com/ubuntu/ hirsute universe\ndeb http://old-releases.ubuntu.com/ubuntu/ hirsute-updates universe\ndeb http://old-releases.ubuntu.com/ubuntu/ hirsute multiverse\ndeb http://old-releases.ubuntu.com/ubuntu/ hirsute-updates multiverse\ndeb http://old-releases.ubuntu.com/ubuntu/ hirsute-backports main restricted universe multiverse" > /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y -qq --no-install-recommends software-properties-common build-essential cmake git \
exiv2 libimage-exiftool-perl proj-bin gdal-bin figlet imagemagick pdal libpdal-dev \
libboost-all-dev libtbb-dev libssl-dev libcurl4-openssl-dev pkg-config libpth-dev \
curl libx11-dev python3-pip python3-setuptools python3-shapely apt-utils p7zip-full
RUN pip3 install -U shyaml
RUN pip3 install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org appsettings
RUN pip3 install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org utm
RUN pip3 install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org pyproj #==2.2.0
RUN pip3 install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org scikit-image
RUN curl --silent --location https://deb.nodesource.com/setup_14.x | bash -
RUN apt-get install -y nodejs
RUN npm install --production
# Build Entwine
WORKDIR "/staging"
RUN git clone --depth 1 https://github.com/OpenDroneMap/entwine /staging/entwine
RUN cd /staging/entwine && \
mkdir build && \
cd build && \
cmake \
-DCMAKE_INSTALL_PREFIX=/usr \
-DWITH_TESTS=OFF \
-DCMAKE_BUILD_TYPE=Release \
../ && \
make -j$(cat /proc/cpuinfo | grep processor | wc -l) && make install
RUN mkdir /var/www
WORKDIR "/var/www"
COPY . /var/www
RUN npm install
RUN mkdir -p tmp /code
RUN mkdir -p /code
# Build MicMac
RUN git clone --depth 1 https://github.com/OpenDroneMap/micmac micmac-build
RUN cd micmac-build && \
rm -rf build && mkdir build && cd build && \
cmake \
-DBUILD_POISSON=0 \
-DBUILD_RNX2RTKP=0 \
-DWITH_OPENCL=OFF \
-DWITH_OPEN_MP=OFF \
-DWITH_ETALONPOLY=OFF \
-DWERROR=OFF \
../ && \
make clean && \
make -j$(cat /proc/cpuinfo | grep processor | wc -l) && make install && \
mkdir -p /code/micmac && \
cd .. && \
cp -Rdp bin binaire-aux lib include /code/micmac
ENV PATH "$PATH:/code/micmac/bin"
RUN ln -s "$(which python3)" /usr/bin/python
ENV python "$(which python3)"
RUN figlet -f slant NodeMICMAC
RUN mkdir -p /code/opendm
COPY micmac/opendm /code/opendm
COPY micmac/odm_options.json /code
COPY micmac/settings.yaml /code
COPY micmac/VERSION /code
COPY micmac/run.sh /code
COPY micmac/run.py /code
RUN apt clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /staging /var/www/micmac-build
WORKDIR "/var/www"
ENTRYPOINT ["/usr/bin/node", "/var/www/index.js"]