-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathAmazonLinuxLibraries.dockerfile
More file actions
151 lines (139 loc) · 6.48 KB
/
AmazonLinuxLibraries.dockerfile
File metadata and controls
151 lines (139 loc) · 6.48 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
139
140
141
142
143
144
145
146
147
148
149
150
151
FROM --platform=linux/amd64 amazonlinux:2023
ARG NODE_VERSION="22.15.0"
ARG OSRM_VERSION="6.0.0"
ARG TILEMAKER_VERSION="3.0.0"
ARG MAPNIK_VERSION="4.1.3"
RUN yum -y install libxml2-devel bzip2-devel boost-devel libzip-devel \
lua.x86_64 lua-devel.x86_64 luajit.x86_64 luajit-devel.x86_64 \
expat expat-devel sqlite-devel libatomic bzip2 diffutils binutils \
gcc14 gcc14-c++ cmake unzip wget tar xz gzip
WORKDIR /home
RUN wget "https://github.com/uxlfoundation/oneTBB/releases/download/v2022.1.0/oneapi-tbb-2022.1.0-lin.tgz" -O onetbb.tgz
RUN tar -xf onetbb.tgz && \
cp -a oneapi-tbb-2022.1.0/lib/intel64/gcc4.8/. /usr/local/lib/ && \
cp -a oneapi-tbb-2022.1.0/include/. /usr/local/include/
RUN wget "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz" -O node.tgz
RUN tar -xf node.tgz && \
ls node-v${NODE_VERSION}-linux-x64 && \
cp -a node-v${NODE_VERSION}-linux-x64/bin/. /usr/local/bin && \
cp -a node-v${NODE_VERSION}-linux-x64/include/. /usr/local/include && \
cp -a node-v${NODE_VERSION}-linux-x64/lib/. /usr/local/lib && \
cp -a node-v${NODE_VERSION}-linux-x64/share/. /usr/local/share && \
export PATH="$PATH:/usr/local/bin" && \
node -v
RUN wget "https://github.com/Project-OSRM/osrm-backend/archive/refs/tags/v${OSRM_VERSION}.tar.gz" -O osrm.tgz
RUN tar -xf osrm.tgz && \
cd osrm-backend-${OSRM_VERSION} && \
npm install --ignore-scripts && \
sed -i -e 's/LUA_COMPAT_5_2/LUA_COMPAT_5_2 1/g' /usr/include/luaconf-x86_64.h && \
sed -i '1s/^/#include <utility>\n/' /usr/include/boost/asio/awaitable.hpp && \
sed -i -e 's/Boost REQUIRED CONFIG COMPONENTS/Boost REQUIRED COMPONENTS/g' CMakeLists.txt && \
mkdir build && \
cd build && \
CXX=gcc14-g++ CC=gcc14-cc cmake .. -DCMAKE_BUILD_TYPE=Release -DENABLE_NODE_BINDINGS=On -DCMAKE_CXX_FLAGS="-Wno-error=uninitialized" && \
cmake --build . -j4
RUN wget "https://github.com/osmcode/osmium-tool/archive/refs/tags/v1.18.0.tar.gz" -O osmium.tgz
RUN wget "https://github.com/osmcode/libosmium/archive/refs/tags/v2.22.0.tar.gz" -O libosmium.tgz
RUN wget "https://github.com/mapbox/protozero/archive/refs/tags/v1.8.0.tar.gz" -O protozero.tgz
RUN yum install -y lz4-devel
RUN tar -xf protozero.tgz && \
cd protozero-1.8.0 && \
mkdir build && \
cd build && \
CXX=gcc14-g++ cmake .. -DBUILD_TESTING=OFF && \
make && \
make install
RUN tar -xf libosmium.tgz && \
cd libosmium-2.22.0 && \
mkdir build && \
cd build && \
CXX=gcc14-g++ cmake .. -DBUILD_EXAMPLES=OFF -DBUILD_TESTING=OFF && \
make && \
make install
RUN wget "https://github.com/nlohmann/json/archive/refs/tags/v3.12.0.tar.gz" -O nlohmann_json.tgz
RUN tar -xf nlohmann_json.tgz && \
cd json-3.12.0 && \
mkdir build && \
cd build && \
CXX=gcc14-g++ cmake .. -DJSON_BuildTests=OFF && \
make && \
make install
RUN tar -xf osmium.tgz && \
cd osmium-tool-1.18.0 && \
mkdir build && \
cd build && \
CXX=gcc14-g++ cmake .. -DBUILD_TESTING=OFF && \
cmake --build .
RUN wget "https://github.com/OSGeo/shapelib/releases/download/v1.6.1/shapelib-1.6.1.tar.gz" -O shapelib.tgz
RUN wget "https://github.com/systemed/tilemaker/archive/refs/tags/v${TILEMAKER_VERSION}.tar.gz" -O tilemaker.tgz
RUN tar -xf shapelib.tgz && \
cd shapelib-1.6.1 && \
CXX=gcc14-g++ ./configure && \
make && \
make install
RUN wget "https://github.com/Tencent/rapidjson/archive/refs/heads/master.zip" -O rapidjson.zip
RUN unzip rapidjson.zip && \
cd rapidjson-master && \
mkdir build && \
cd build && \
CXX=gcc14-g++ CC=gcc14-cc cmake .. -DRAPIDJSON_BUILD_DOC=OFF -DRAPIDJSON_BUILD_EXAMPLES=OFF -DRAPIDJSON_BUILD_TESTS=OFF && \
cmake --build . && \
cmake --install .
RUN tar -xf tilemaker.tgz && \
cd tilemaker-${TILEMAKER_VERSION} && \
mkdir build && \
cd build && \
CXX=gcc14-g++ CC=gcc14-cc cmake .. && \
cmake --build .
RUN mkdir -p /home/export/lib && \
cp /usr/lib64/libboost_program_options.so.1.75.0 /home/export/lib/ && \
cp /usr/lib64/libboost_system.so.1.75.0 /home/export/lib/ && \
cp /usr/lib64/libboost_iostreams.so.1.75.0 /home/export/lib/ && \
cp /usr/lib64/libboost_regex.so.1.75.0 /home/export/lib/ && \
cp /usr/lib64/libicudata.so.67 /home/export/lib/ && \
cp /usr/lib64/libicui18n.so.67 /home/export/lib/ && \
cp /usr/lib64/libicuuc.so.67 /home/export/lib/ && \
cp /usr/lib64/liblua-5.4.so /home/export/lib/ && \
cp /usr/lib64/libexpat.so.1 /home/export/lib/ && \
cd /home/export && \
zip -r /home/aws-lambda-layer-osmtools-base.zip . && \
rm -rf /home/export
RUN cd osrm-backend-${OSRM_VERSION} && \
mkdir -p /home/export/nodejs/node_modules/@project-osrm/osrm/lib && \
cp package.json /home/export/nodejs/node_modules/@project-osrm/osrm/ && \
cp package-lock.json /home/export/nodejs/node_modules/@project-osrm/osrm/ && \
cp lib/index.js /home/export/nodejs/node_modules/@project-osrm/osrm/lib/index.js && \
cp -r lib/binding /home/export/nodejs/node_modules/@project-osrm/osrm/lib && \
mkdir -p /home/export/bin && \
cp build/osrm-extract /home/export/bin/ && \
cp build/osrm-partition /home/export/bin/ && \
cp build/osrm-customize /home/export/bin/ && \
cp build/osrm-routed /home/export/bin/ && \
cp build/osrm-datastore /home/export/bin/ && \
cp build/osrm-contract /home/export/bin/ && \
mkdir -p /home/export/lib && \
cp /usr/local/lib/libtbb.so.12 /home/export/lib/ && \
cp /usr/lib64/libboost_date_time.so.1.75.0 /home/export/lib/ && \
cp /usr/lib64/libboost_thread.so.1.75.0 /home/export/lib/ && \
cd /home/export && \
zip -r /home/aws-lambda-layer-osmtools-osrm.zip . && \
rm -rf /home/export
RUN mkdir -p /home/export/bin && \
cd tilemaker-${TILEMAKER_VERSION} && \
cp build/tilemaker /home/export/bin/tilemaker && \
mkdir -p /home/export/lib && \
cp /usr/local/lib/libshp.so.4 /home/export/lib/ && \
cp /usr/lib64/libsqlite3.so.0 /home/export/lib/ && \
cp /usr/lib64/libboost_filesystem.so.1.75.0 /home/export/lib/ && \
cp /usr/lib64/libatomic.so.1 /home/export/lib/ && \
cd /home/export && \
zip -r /home/aws-lambda-layer-osmtools-tilemaker.zip . && \
rm -rf /home/export
RUN mkdir -p /home/export/bin && \
cd osmium-tool-1.18.0 && \
cp build/src/osmium /home/export/bin/osmium && \
mkdir -p /home/export/lib && \
cp /usr/lib64/liblz4.so.1 /home/export/lib/ && \
cd /home/export && \
zip -r /home/aws-lambda-layer-osmtools-osmium.zip . && \
rm -rf /home/export