需要具备docker环境并配置docker compose,不再赘述
我计划在data路径下部署valhalla
bashsudo mkdir -p /data/valhalla
cd /data/valhalla
mkdir data
mkdir tiles
mkdir config
mkdir logs
此时目录结构应该是:
/data/valhalla ├── config ├── data ├── logs └── tiles
valhalla使用的是osm的pbf数据,在网上可以下载的地方很多,以香港为例:
bashcd /data/valhalla/data
wget https://download.geofabrik.de/asia/hong-kong-latest.osm.pbf
建立文件
bashvim docker-compose.yml
写入如下内容:
yamlversion: "3.9"
services:
valhalla:
image: ghcr.io/valhalla/valhalla:latest
container_name: valhalla
restart: unless-stopped
ports:
- "8002:8002"
volumes:
- /data/valhalla/data:/data
- /data/valhalla/tiles:/tiles
- /data/valhalla/config:/config
- /data/valhalla/logs:/logs
tty: true
拉镜像的速度,取决于网络状态
bashdocker compose pull
bash# 启动临时容器
docker compose run --rm valhalla bash
# 在容器内执行
valhalla_build_config --mjolnir-tile-dir /tiles > /config/valhalla.json
# 退出容器
exit
在valhalla内部使用的不是pbf,而是graph tile 所以要用pbf生成graph tile
bashdocker compose run --rm valhalla \
valhalla_build_tiles \
-c /config/valhalla.json \
/data/hong-kong-latest.osm.pbf
查看tiles目录下有.gph文件即可
在docker compose yml文件中加入以下内容:
yamlcommand:
- valhalla_service
- /config/valhalla.json
- "1"
bashdocker compose up -d
测试一下是否启动成功
bashcurl localhost:8002/status
本文作者:Yaki
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!