无法为巴西构建 osrm docker 服务器
unable to build an osrm docker server for Brazil
我正在尝试为巴西构建自己的 docker 服务器。为此,我正在关注此 example。首先我运行这行代码:
docker pull osrm/osrm-backend
然后我从 Geofabrik:
下载巴西数据
wget http://download.geofabrik.de/south-america/brazil-latest.osm.pbf
使用汽车配置文件对提取物进行预处理:
docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-extract -p /opt/car.lua /data/brazil-latest.osm.pbf
但是当我 运行 上面的代码行时,我只得到一个文件,它是时间戳,而我应该得到更多。但是,当我 运行 柏林或爱尔兰的所有命令(如示例中)时,我可以成功构建自己的服务器,我不确定为什么相同的步骤不适用于巴西。
要构建柏林,以下代码行应为 运行:
docker pull osrm/osrm-backend
wget http://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf
docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-extract -p /opt/car.lua /data/berlin-latest.osm.pbf
docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-partition /data/berlin-latest.osrm
docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-customize /data/berlin-latest.osrm
docker run -t -i -p 5000:5000 -v "${PWD}:/data" osrm/osrm-backend osrm-routed --algorithm mld /data/berlin-latest.osrm
我尝试遵循该代码(但分别使用 brazil-latest.osm.pbf
和 brazil-latest.osrm
),但我无法从 brazil-latest.osm.pbf
中提取所有文件。我不确定巴西是否有问题,或者我做错了什么。
在不了解您的系统的情况下,内存不足听起来像是经典问题。
https://github.com/Project-OSRM/osrm-backend/wiki/Disk-and-Memory-Requirements
也看看 https://github.com/Project-OSRM/osrm-backend/issues/5265 有很好的讨论。
如果这是你的问题并且你 运行 Linux 考虑使用交换文件进行本地提取,因为他们在 5.23.0 (https://github.com/Project-OSRM/osrm-backend/pull/5760) 中删除了对 stxxl 的支持。
如果您不需要整个国家/地区,您还可以使用 osmosis 等工具提取较小的边界框。
我正在尝试为巴西构建自己的 docker 服务器。为此,我正在关注此 example。首先我运行这行代码:
docker pull osrm/osrm-backend
然后我从 Geofabrik:
下载巴西数据wget http://download.geofabrik.de/south-america/brazil-latest.osm.pbf
使用汽车配置文件对提取物进行预处理:
docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-extract -p /opt/car.lua /data/brazil-latest.osm.pbf
但是当我 运行 上面的代码行时,我只得到一个文件,它是时间戳,而我应该得到更多。但是,当我 运行 柏林或爱尔兰的所有命令(如示例中)时,我可以成功构建自己的服务器,我不确定为什么相同的步骤不适用于巴西。
要构建柏林,以下代码行应为 运行:
docker pull osrm/osrm-backend
wget http://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf
docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-extract -p /opt/car.lua /data/berlin-latest.osm.pbf
docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-partition /data/berlin-latest.osrm
docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-customize /data/berlin-latest.osrm
docker run -t -i -p 5000:5000 -v "${PWD}:/data" osrm/osrm-backend osrm-routed --algorithm mld /data/berlin-latest.osrm
我尝试遵循该代码(但分别使用 brazil-latest.osm.pbf
和 brazil-latest.osrm
),但我无法从 brazil-latest.osm.pbf
中提取所有文件。我不确定巴西是否有问题,或者我做错了什么。
在不了解您的系统的情况下,内存不足听起来像是经典问题。
https://github.com/Project-OSRM/osrm-backend/wiki/Disk-and-Memory-Requirements
也看看 https://github.com/Project-OSRM/osrm-backend/issues/5265 有很好的讨论。
如果这是你的问题并且你 运行 Linux 考虑使用交换文件进行本地提取,因为他们在 5.23.0 (https://github.com/Project-OSRM/osrm-backend/pull/5760) 中删除了对 stxxl 的支持。
如果您不需要整个国家/地区,您还可以使用 osmosis 等工具提取较小的边界框。