Skip to content

Commit 135b023

Browse files
authored
Merge pull request #52 from peter-evans/update-osrm
Update OSRM backend to version 5.20.0
2 parents 9a4fa14 + 4a47e69 commit 135b023

File tree

6 files changed

+126
-3
lines changed

6 files changed

+126
-3
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ services:
22
- docker
33

44
install:
5-
- docker build -t osrm-backend-k8s ./1.18
5+
- docker build -t osrm-backend-k8s ./1.19
66
- docker run -d -p 5000:5000 -e OSRM_PBF_URL='http://download.geofabrik.de/asia/maldives-latest.osm.pbf' --name osrm-backend osrm-backend-k8s
77

88
before_script:

1.19/Dockerfile

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
FROM peterevans/xenial-gcloud:1.2.21
2+
3+
MAINTAINER Peter Evans <pete.evans@gmail.com>
4+
5+
ENV OSRM_VERSION 5.20.0
6+
7+
# Let the container know that there is no TTY
8+
ARG DEBIAN_FRONTEND=noninteractive
9+
10+
# Install packages
11+
RUN apt-get -y update \
12+
&& apt-get install -y -qq --no-install-recommends \
13+
build-essential \
14+
cmake \
15+
curl \
16+
libbz2-dev \
17+
libstxxl-dev \
18+
libstxxl1v5 \
19+
libxml2-dev \
20+
libzip-dev \
21+
libboost-all-dev \
22+
lua5.2 \
23+
liblua5.2-dev \
24+
libtbb-dev \
25+
libluabind-dev \
26+
pkg-config \
27+
gcc \
28+
python-dev \
29+
python-setuptools \
30+
&& apt-get clean \
31+
&& easy_install -U pip \
32+
&& pip install -U crcmod \
33+
&& rm -rf /var/lib/apt/lists/* \
34+
&& rm -rf /tmp/* /var/tmp/*
35+
36+
# Build osrm-backend
37+
RUN mkdir /osrm-src \
38+
&& cd /osrm-src \
39+
&& curl --silent -L https://github.com/Project-OSRM/osrm-backend/archive/v$OSRM_VERSION.tar.gz -o v$OSRM_VERSION.tar.gz \
40+
&& tar xzf v$OSRM_VERSION.tar.gz \
41+
&& cd osrm-backend-$OSRM_VERSION \
42+
&& mkdir build \
43+
&& cd build \
44+
&& cmake .. -DCMAKE_BUILD_TYPE=Release \
45+
&& cmake --build . \
46+
&& cmake --build . --target install \
47+
&& mkdir /osrm-data \
48+
&& mkdir /osrm-profiles \
49+
&& cp -r /osrm-src/osrm-backend-$OSRM_VERSION/profiles/* /osrm-profiles \
50+
&& rm -rf /osrm-src
51+
52+
# Set the entrypoint
53+
COPY docker-entrypoint.sh /
54+
RUN chmod +x /docker-entrypoint.sh
55+
ENTRYPOINT ["/docker-entrypoint.sh"]
56+
57+
EXPOSE 5000

1.19/docker-entrypoint.sh

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
#!/bin/bash
2+
3+
if [ "$OSRM_MODE" != "CREATE" ] && [ "$OSRM_MODE" != "RESTORE" ]; then
4+
# Default to CREATE
5+
OSRM_MODE="CREATE"
6+
fi
7+
8+
# Defaults
9+
OSRM_DATA_PATH=${OSRM_DATA_PATH:="/osrm-data"}
10+
OSRM_DATA_LABEL=${OSRM_DATA_LABEL:="data"}
11+
OSRM_GRAPH_PROFILE=${OSRM_GRAPH_PROFILE:="car"}
12+
OSRM_PBF_URL=${OSRM_PBF_URL:="http://download.geofabrik.de/asia/maldives-latest.osm.pbf"}
13+
# Google Storage variables
14+
OSRM_SA_KEY_PATH=${OSRM_SA_KEY_PATH:=""}
15+
OSRM_PROJECT_ID=${OSRM_PROJECT_ID:=""}
16+
OSRM_GS_BUCKET=${OSRM_GS_BUCKET:=""}
17+
OSRM_MAX_TABLE_SIZE=${OSRM_MAX_TABLE_SIZE:="8000"}
18+
19+
20+
_sig() {
21+
kill -TERM $child 2>/dev/null
22+
}
23+
trap _sig SIGKILL SIGTERM SIGHUP SIGINT EXIT
24+
25+
26+
if [ "$OSRM_MODE" == "CREATE" ]; then
27+
28+
# Retrieve the PBF file
29+
curl -L $OSRM_PBF_URL --create-dirs -o $OSRM_DATA_PATH/$OSRM_DATA_LABEL.osm.pbf
30+
31+
# Build the graph
32+
osrm-extract $OSRM_DATA_PATH/$OSRM_DATA_LABEL.osm.pbf -p /osrm-profiles/$OSRM_GRAPH_PROFILE.lua
33+
osrm-contract $OSRM_DATA_PATH/$OSRM_DATA_LABEL.osrm
34+
35+
if [ ! -z "$OSRM_SA_KEY_PATH" ] && [ ! -z "$OSRM_PROJECT_ID" ] && [ ! -z "$OSRM_GS_BUCKET" ]; then
36+
37+
# Activate the service account to access storage
38+
gcloud auth activate-service-account --key-file $OSRM_SA_KEY_PATH
39+
# Set the Google Cloud project ID
40+
gcloud config set project $OSRM_PROJECT_ID
41+
42+
# Copy the graph to storage
43+
gsutil -m cp $OSRM_DATA_PATH/*.osrm* $OSRM_GS_BUCKET/$OSRM_DATA_LABEL
44+
45+
fi
46+
47+
else
48+
49+
if [ ! -z "$OSRM_SA_KEY_PATH" ] && [ ! -z "$OSRM_PROJECT_ID" ] && [ ! -z "$OSRM_GS_BUCKET" ]; then
50+
51+
# Activate the service account to access storage
52+
gcloud auth activate-service-account --key-file $OSRM_SA_KEY_PATH
53+
# Set the Google Cloud project ID
54+
gcloud config set project $OSRM_PROJECT_ID
55+
56+
# Copy the graph from storage
57+
gsutil -m cp $OSRM_GS_BUCKET/$OSRM_DATA_LABEL/*.osrm* $OSRM_DATA_PATH
58+
59+
fi
60+
61+
fi
62+
63+
# Start serving requests
64+
osrm-routed $OSRM_DATA_PATH/$OSRM_DATA_LABEL.osrm --max-table-size $OSRM_MAX_TABLE_SIZE &
65+
child=$!
66+
wait "$child"

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ If you are looking for a more general purpose docker image, see [osrm-backend-do
1010

1111
## Supported tags and respective `Dockerfile` links
1212

13-
- [`1.18.0`, `1.18`, `latest` (*1.18/Dockerfile*)](https://github.com/peter-evans/osrm-backend-k8s/tree/master/1.18)
13+
- [`1.19.0`, `1.19`, `latest` (*1.19/Dockerfile*)](https://github.com/peter-evans/osrm-backend-k8s/tree/master/1.19)
14+
- [`1.18.0`, `1.18` (*1.18/Dockerfile*)](https://github.com/peter-evans/osrm-backend-k8s/tree/master/1.18)
1415
- [`1.17.1`, `1.17` (*1.17/Dockerfile*)](https://github.com/peter-evans/osrm-backend-k8s/tree/master/1.17)
1516
- [`1.16.2`, `1.16` (*1.16/Dockerfile*)](https://github.com/peter-evans/osrm-backend-k8s/tree/master/1.16)
1617
- [`1.15.7`, `1.15` (*1.15/Dockerfile*)](https://github.com/peter-evans/osrm-backend-k8s/tree/master/1.15)
@@ -19,7 +20,6 @@ If you are looking for a more general purpose docker image, see [osrm-backend-do
1920
- [`1.12.0`, `1.12` (*1.12/Dockerfile*)](https://github.com/peter-evans/osrm-backend-k8s/tree/master/1.12)
2021
- [`1.11.0`, `1.11` (*1.11/Dockerfile*)](https://github.com/peter-evans/osrm-backend-k8s/tree/master/1.11)
2122
- [`1.10.0`, `1.10` (*1.10/Dockerfile*)](https://github.com/peter-evans/osrm-backend-k8s/tree/master/1.10)
22-
- [`1.9.0`, `1.9` (*1.9/Dockerfile*)](https://github.com/peter-evans/osrm-backend-k8s/tree/master/1.9)
2323

2424
For earlier versions see [releases](https://github.com/peter-evans/osrm-backend-k8s/releases) and the available [tags on Docker Hub](https://hub.docker.com/r/peterevans/osrm-backend-k8s/tags/).
2525

File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)