Commit ·
e947f7e
1
Parent(s): ee0aea0
fix: preprocess OSRM map data at runtime instead of build time
Browse files- Dockerfile +2 -9
- start.sh +28 -11
- supervisord.conf +1 -1
Dockerfile
CHANGED
|
@@ -11,19 +11,12 @@ FROM ghcr.io/project-osrm/osrm-backend:latest AS runtime
|
|
| 11 |
ENV TZ=UTC
|
| 12 |
|
| 13 |
RUN apk update && apk add --no-cache \
|
| 14 |
-
curl wget ca-certificates
|
| 15 |
|
| 16 |
RUN adduser -D -u 1000 user
|
| 17 |
ENV HOME=/home/user PATH=/home/user/.local/bin:$PATH
|
| 18 |
|
| 19 |
-
RUN mkdir -p /osrm-data &&
|
| 20 |
-
RUN wget -q "https://download.geofabrik.de/europe/luxembourg-latest.osm.pbf" \
|
| 21 |
-
-O /osrm-data/map.osm.pbf \
|
| 22 |
-
&& osrm-extract -p /opt/car.lua /osrm-data/map.osm.pbf \
|
| 23 |
-
&& osrm-partition /osrm-data/map.osrm \
|
| 24 |
-
&& osrm-customize /osrm-data/map.osrm \
|
| 25 |
-
&& rm /osrm-data/map.osm.pbf \
|
| 26 |
-
&& echo "OSRM preprocessing complete"
|
| 27 |
|
| 28 |
WORKDIR $HOME/app
|
| 29 |
|
|
|
|
| 11 |
ENV TZ=UTC
|
| 12 |
|
| 13 |
RUN apk update && apk add --no-cache \
|
| 14 |
+
curl wget ca-certificates supervisor nodejs npm bash
|
| 15 |
|
| 16 |
RUN adduser -D -u 1000 user
|
| 17 |
ENV HOME=/home/user PATH=/home/user/.local/bin:$PATH
|
| 18 |
|
| 19 |
+
RUN mkdir -p /home/user/osrm-data && chown user:user /home/user/osrm-data
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
|
| 21 |
WORKDIR $HOME/app
|
| 22 |
|
start.sh
CHANGED
|
@@ -1,17 +1,34 @@
|
|
| 1 |
#!/bin/bash
|
| 2 |
set -e
|
| 3 |
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
|
| 15 |
-
echo "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
|
| 17 |
exec supervisord -c /etc/supervisord.conf
|
|
|
|
| 1 |
#!/bin/bash
|
| 2 |
set -e
|
| 3 |
|
| 4 |
+
OSRM_DIR="/home/user/osrm-data"
|
| 5 |
+
MAP_FILE="$OSRM_DIR/map.osrm"
|
| 6 |
+
PBF_FILE="$OSRM_DIR/map.osm.pbf"
|
| 7 |
+
|
| 8 |
+
echo "RouteWave starting..."
|
| 9 |
+
echo " Backend port: ${PORT:-7860}"
|
| 10 |
+
echo " OSRM port: 5001"
|
| 11 |
+
|
| 12 |
+
if [ ! -f "$MAP_FILE" ]; then
|
| 13 |
+
echo "OSRM data not found, downloading and preprocessing Luxembourg map..."
|
| 14 |
+
mkdir -p "$OSRM_DIR"
|
| 15 |
+
|
| 16 |
+
echo "Downloading map data..."
|
| 17 |
+
wget -q "https://download.geofabrik.de/europe/luxembourg-latest.osm.pbf" -O "$PBF_FILE"
|
| 18 |
|
| 19 |
+
echo "Running osrm-extract..."
|
| 20 |
+
osrm-extract -p /opt/car.lua "$PBF_FILE"
|
| 21 |
+
|
| 22 |
+
echo "Running osrm-partition..."
|
| 23 |
+
osrm-partition "$OSRM_DIR/map.osrm"
|
| 24 |
+
|
| 25 |
+
echo "Running osrm-customize..."
|
| 26 |
+
osrm-customize "$OSRM_DIR/map.osrm"
|
| 27 |
+
|
| 28 |
+
rm -f "$PBF_FILE"
|
| 29 |
+
echo "OSRM preprocessing complete"
|
| 30 |
+
else
|
| 31 |
+
echo "OSRM data found at $MAP_FILE"
|
| 32 |
+
fi
|
| 33 |
|
| 34 |
exec supervisord -c /etc/supervisord.conf
|
supervisord.conf
CHANGED
|
@@ -6,7 +6,7 @@ loglevel=info
|
|
| 6 |
pidfile=/tmp/supervisord.pid
|
| 7 |
|
| 8 |
[program:osrm]
|
| 9 |
-
command=osrm-routed --algorithm mld --port 5001 --max-table-size 10000 /osrm-data/map.osrm
|
| 10 |
autostart=true
|
| 11 |
autorestart=true
|
| 12 |
startretries=5
|
|
|
|
| 6 |
pidfile=/tmp/supervisord.pid
|
| 7 |
|
| 8 |
[program:osrm]
|
| 9 |
+
command=osrm-routed --algorithm mld --port 5001 --max-table-size 10000 /home/user/osrm-data/map.osrm
|
| 10 |
autostart=true
|
| 11 |
autorestart=true
|
| 12 |
startretries=5
|