2026-08-06
技术文档
00

目录

配置环境
建立路径
下载原始数据
编写docker compose yaml
下载镜像
生成配置文件
生成 Graph Tile
修改docker compose文件
启动

配置环境

需要具备docker环境并配置docker compose,不再赘述

建立路径

我计划在data路径下部署valhalla

bash
sudo mkdir -p /data/valhalla cd /data/valhalla mkdir data mkdir tiles mkdir config mkdir logs

此时目录结构应该是:

/data/valhalla ├── config ├── data ├── logs └── tiles

下载原始数据

valhalla使用的是osm的pbf数据,在网上可以下载的地方很多,以香港为例:

bash
cd /data/valhalla/data wget https://download.geofabrik.de/asia/hong-kong-latest.osm.pbf

编写docker compose yaml

建立文件

bash
vim docker-compose.yml

写入如下内容:

yaml
version: "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

下载镜像

拉镜像的速度,取决于网络状态

bash
docker compose pull

生成配置文件

bash
# 启动临时容器 docker compose run --rm valhalla bash # 在容器内执行 valhalla_build_config --mjolnir-tile-dir /tiles > /config/valhalla.json # 退出容器 exit

生成 Graph Tile

在valhalla内部使用的不是pbf,而是graph tile 所以要用pbf生成graph tile

bash
docker compose run --rm valhalla \ valhalla_build_tiles \ -c /config/valhalla.json \ /data/hong-kong-latest.osm.pbf

查看tiles目录下有.gph文件即可

修改docker compose文件

在docker compose yml文件中加入以下内容:

yaml
command: - valhalla_service - /config/valhalla.json - "1"

启动

bash
docker compose up -d

测试一下是否启动成功

bash
curl localhost:8002/status

本文作者:Yaki

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!