Supercellat124578 commited on
Commit
e947f7e
·
1 Parent(s): ee0aea0

fix: preprocess OSRM map data at runtime instead of build time

Browse files
Files changed (3) hide show
  1. Dockerfile +2 -9
  2. start.sh +28 -11
  3. 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 gnupg 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 /osrm-data && chmod 777 /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
- echo " RouteWave starting..."
5
- echo " OSRM data: /osrm-data/map.osrm"
6
- echo " Backend port: ${PORT:-7860}"
7
- echo " OSRM port: 5001"
8
-
9
- if [ ! -f "/osrm-data/map.osrm" ]; then
10
- echo "ERROR: OSRM data not found at /osrm-data/map.osrm"
11
- echo " The Dockerfile should have preprocessed this during build."
12
- exit 1
13
- fi
 
 
 
 
14
 
15
- echo "OSRM data found"
 
 
 
 
 
 
 
 
 
 
 
 
 
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