diff --git a/docker-orchestration/osrm-backend/Dockerfile b/docker-orchestration/osrm-backend/Dockerfile index 58645fb0b..40a39c54d 100644 --- a/docker-orchestration/osrm-backend/Dockerfile +++ b/docker-orchestration/osrm-backend/Dockerfile @@ -10,6 +10,7 @@ RUN echo "Building branch ${BRANCH_NAME}" && \ cmake .. -DENABLE_LTO=On && \ cmake --build . -- -j && \ mkdir /osrm-build && \ + mkdir /osrm-data && \ cp /osrm-backend/build/osrm* /osrm-build/ && \ cp -r /osrm-backend/profiles /osrm-build/ @@ -41,6 +42,12 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update && \ RUN mkdir /osrm-build COPY --from=builder /osrm-build /osrm-build/ +COPY --from=builder /osrm-data /osrm-data/ COPY --from=gobuilder /workspace/go/bin /osrm-build/ +WORKDIR /osrm-build +# Publish +COPY ./docker-entrypoint.sh / +RUN chmod +x /docker-entrypoint.sh +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/docker-orchestration/osrm-backend/docker-entrypoint.sh b/docker-orchestration/osrm-backend/docker-entrypoint.sh new file mode 100755 index 000000000..7f2be4daa --- /dev/null +++ b/docker-orchestration/osrm-backend/docker-entrypoint.sh @@ -0,0 +1,25 @@ +#!/bin/bash +DATA_PATH=${DATA_PATH:="/osrm-data"} + +_sig() { + kill -TERM $child 2>/dev/null +} + +if [ "$1" = 'routed_startup' ]; then + trap _sig SIGKILL SIGTERM SIGHUP SIGINT EXIT + ./osrm-routed $DATA_PATH/$2.osrm -a MLD --max-table-size 8000 & + child=$! + wait "$child" +elif [ "$1" = 'compile_mapdata']; then + trap _sig SIGKILL SIGTERM SIGHUP SIGINT EXIT + if [ ! -f $DATA_PATH/$2.osrm ]; then + if [ ! -f $DATA_PATH/$2.osm.pbf ]; then + curl $3 > $DATA_PATH/$2.osm.pbf + fi + ./osrm-extract $DATA_PATH/$2.osm.pbf -p profile.lua + ./osrm-partition $DATA_PATH/$2.osrm + ./osrm-customize $DATA_PATH/$2.osrm + fi +else + exec "$@" +fi