aboutsummaryrefslogtreecommitdiff
path: root/build_renfe/Dockerfile
diff options
context:
space:
mode:
authorAriel Costas Guerrero <ariel@costas.dev>2026-04-05 22:30:15 +0200
committerAriel Costas Guerrero <ariel@costas.dev>2026-04-05 22:30:27 +0200
commit95f8e03affb17b3b4dd8cff202523f5b131972df (patch)
tree23e31512167f1295defc9cc4639ff6f411c04a54 /build_renfe/Dockerfile
parentb2631a82a394af8c38224ae0722bcf728d651cfd (diff)
renfe: generate shapes properly and consistently
- Update OSRM container to use ALL SPAIN (sorry, Trencelta) - Generate a shape per trip (no trying to reuse, since trains that change stop sequence got wrong shapes) - Add more position corrections for FEVE - Run separate generators for FEVE and Renfe, since sometimes OSRM would pick the one that shouldn't and generate a wrong shape - Add a debug script to generate a trip's visualisation from GTFS, since I was about to lose my mind debugging this pile of crap - Update README (before starting anything else) Time spent: ca. 6 hours Closes #1
Diffstat (limited to 'build_renfe/Dockerfile')
-rw-r--r--build_renfe/Dockerfile39
1 files changed, 28 insertions, 11 deletions
diff --git a/build_renfe/Dockerfile b/build_renfe/Dockerfile
index f565320..02a8480 100644
--- a/build_renfe/Dockerfile
+++ b/build_renfe/Dockerfile
@@ -1,25 +1,42 @@
# Use a multi-stage build to download necessary files
FROM alpine/curl AS downloader
-RUN curl -L https://download.geofabrik.de/europe/spain/galicia-latest.osm.pbf -o /galicia-latest.osm.pbf
-RUN curl -L https://raw.githubusercontent.com/railnova/osrm-train-profile/refs/heads/master/basic.lua -o /opt/train.lua
+RUN curl -L https://download.geofabrik.de/europe/spain-latest.osm.pbf -o /spain-latest.osm.pbf
-FROM osrm/osrm-backend
+FROM osrm/osrm-backend AS builder
# Copy the downloaded OSM file from the downloader stage
-COPY --from=downloader /galicia-latest.osm.pbf /data/galicia-latest.osm.pbf
-COPY --from=downloader /opt/train.lua /opt/train.lua
+RUN mkdir -p /data/standard /data/narrow
+COPY --from=downloader /spain-latest.osm.pbf /data/standard/spain-latest.osm.pbf
+COPY --from=downloader /spain-latest.osm.pbf /data/narrow/spain-latest.osm.pbf
+COPY ./train_standard.lua /opt/train_standard.lua
+COPY ./train_narrow.lua /opt/train_narrow.lua
# Extract the map data using osrm-train-profile (by Railnova)
-RUN osrm-extract -p /opt/train.lua /data/galicia-latest.osm.pbf
+RUN osrm-extract -p /opt/train_standard.lua /data/standard/spain-latest.osm.pbf
+RUN osrm-partition /data/standard/spain-latest.osrm
# Prepare the map data for routing
-RUN osrm-partition /data/galicia-latest.osrm
-RUN osrm-customize /data/galicia-latest.osrm
+RUN osrm-extract -p /opt/train_narrow.lua /data/narrow/spain-latest.osm.pbf
+RUN osrm-partition /data/narrow/spain-latest.osrm
+
+RUN osrm-customize /data/standard/spain-latest.osrm
+RUN osrm-customize /data/narrow/spain-latest.osrm
+
+RUN rm /data/standard/spain-latest.osm.pbf
+RUN rm /data/narrow/spain-latest.osm.pbf
+
+FROM osrm/osrm-backend
+
+RUN mkdir -p /data/standard /data/narrow
+COPY --from=builder /data/standard/spain-latest.osrm* /data/standard/
+COPY --from=builder /data/narrow/spain-latest.osrm* /data/narrow/
# Expose the OSRM server port
-EXPOSE 5000
+EXPOSE 5000 5001
# Start the OSRM server
-CMD ["osrm-routed", "--algorithm", "mld", "/data/galicia-latest.osrm"]
-
+COPY ./start.sh /start.sh
+RUN chmod +x /start.sh
+EXPOSE 5000 5001
+CMD ["/start.sh"] \ No newline at end of file