Use PBF_FILE_NAME + IMAGE_TAG as DATA_VERSION to shown in every response (#24)

* chore: set debug log level and set pbf file name as data_version when compile data

* chore: add IMAGE_TAG for shown in response

* docs: update example

* chore: use PBF file name + IMAGE_TAG as data_version which can be returned in each JSON response
This commit is contained in:
Jay 2019-06-21 06:11:45 +08:00 committed by Xun(Perry) Liu
parent b1446e4add
commit 147b6e520f
3 changed files with 16 additions and 5 deletions

View File

@ -46,6 +46,10 @@ COPY --from=gobuilder /workspace/go/bin /osrm-build/
COPY ./docker-entrypoint.sh /
RUN chmod +x /docker-entrypoint.sh
# for shown on runtime
ARG IMAGE_TAG
ENV IMAGE_TAG ${IMAGE_TAG}
EXPOSE 5000
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@ -1,7 +1,7 @@
#!/bin/bash -x
BUILD_PATH=${BUILD_PATH:="/osrm-build"}
DATA_PATH=${DATA_PATH:="/osrm-data"}
OSRM_EXTRA_COMMAND="-l --verbosity"
OSRM_EXTRA_COMMAND="-l DEBUG"
MAPDATA_NAME_WITH_SUFFIX=map
_sig() {
@ -29,8 +29,15 @@ elif [ "$1" = 'compile_mapdata' ]; then
KEEP_COMPILED_DATA=${3:-"false"}
GENERATE_DATA_PACKAGE=${4:-"false"}
# use PBF file name + IMAGE_TAG as data_version which can be returned in each JSON response
DATA_VERSION=`echo ${PBF_FILE_URL} | rev | cut -d / -f 1 | rev`
if [ x${IMAGE_TAG} != x ]; then
DATA_VERSION=${DATA_VERSION}--compiled-by-${IMAGE_TAG}
fi
echo ${DATA_VERSION}
curl ${PBF_FILE_URL} > $DATA_PATH/${MAPDATA_NAME_WITH_SUFFIX}.osm.pbf
${BUILD_PATH}/osrm-extract $DATA_PATH/${MAPDATA_NAME_WITH_SUFFIX}.osm.pbf -p ${BUILD_PATH}/profiles/car.lua ${OSRM_EXTRA_COMMAND}
${BUILD_PATH}/osrm-extract $DATA_PATH/${MAPDATA_NAME_WITH_SUFFIX}.osm.pbf -p ${BUILD_PATH}/profiles/car.lua -d ${DATA_VERSION} ${OSRM_EXTRA_COMMAND}
${BUILD_PATH}/osrm-partition $DATA_PATH/${MAPDATA_NAME_WITH_SUFFIX}.osrm ${OSRM_EXTRA_COMMAND}
${BUILD_PATH}/osrm-customize $DATA_PATH/${MAPDATA_NAME_WITH_SUFFIX}.osrm ${OSRM_EXTRA_COMMAND}

View File

@ -2,13 +2,13 @@
- Generate docker image
```bash
$ DOCKER_BUILDKIT=1 docker build --no-cache -t telenav/osrm-backend:compile-data-inside-docker --build-arg BRANCH_NAME=feature/compile-data-inside-docker .
$ DOCKER_BUILDKIT=1 docker build --no-cache -t telenav/osrm-backend:master-telenav --build-arg BRANCH_NAME=master-telenav --build-arg IMAGE_TAG=master-telenav-20190620 .
```
- Generate OSRM data
```bash
$ mkdir -p compiled-data
$ docker run -it --mount "src=$(pwd)/compiled-data,dst=/save-data,type=bind" telenav/osrm-backend:compile-data-inside-docker compile_mapdata "https://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf" false true
$ docker run -it --mount "src=$(pwd)/compiled-data,dst=/save-data,type=bind" telenav/osrm-backend:master-telenav compile_mapdata "https://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf" false true
$ ll compiled-data/
total 34968
-rw-r--r-- 1 root root 35805710 Jun 17 23:34 map.tar.gz
@ -18,7 +18,7 @@ total 34968
```bash
$ cd compiled-data
$ tar -zxf map.tar.gz
$ docker run -d -p 5000:5000 --mount "src=$(pwd),dst=/osrm-data,type=bind" --name osrm-api telenav/osrm-backend:compile-data-inside-docker routed_startup
$ docker run -d -p 5000:5000 --mount "src=$(pwd),dst=/osrm-data,type=bind" --name osrm-api telenav/osrm-backend:master-telenav routed_startup
05227a108a66e7c59f7515f8f174a65f9932f36fe3807f83991806c0194a7e50
```
You should see such logs in docker