Bundle go-pmtiles into the Docker image
CI / check (push) Successful in 18s
CI / deploy (push) Successful in 2m23s

The "Regenerate for current view" build was failing in production with
"could not run 'pmtiles'" — go-pmtiles was never actually installed
anywhere, just documented as something a developer runs by hand
locally (docs/development.adoc). Installs the static Linux binary from
go-pmtiles' own GitHub releases, architecture-matched via dpkg rather
than hardcoded amd64.

Verified the exact download/extract/exec sequence end-to-end outside
Docker (no daemon available in this sandbox to run a real build).
This commit is contained in:
randy committed 2026-09-11 11:47:31 +02:00
1 parent cd56ebe0a1
commit d72f8a3c94
2 files changed
+40 -2

No files matched your search

+19 -1
View File
@@ -82,6 +82,24 @@ The online map style (not vendored, fetched at runtime when the
https://tiles.openfreemap.org/styles/liberty[OpenFreeMap "liberty"],
built from https://www.openstreetmap.org[OpenStreetMap] data.
Not a frontend asset like the above, but also baked into this app's own
Docker image (not a separate container the way kiwix-serve/gpsd are —
see `docs/deployment.adoc`/`docs/development.adoc`): the `pmtiles` CLI
(`go-pmtiles`), installed as a static binary in the `Dockerfile` for
`lib/maptool/pmtiles_builder.rb`'s in-app offline.pmtiles/terrain.pmtiles
regeneration. BSD-3-Clause, same as pmtiles.js/MapLibre GL above.
[cols="1,1,2"]
|===
| Tool | Version | Source
| go-pmtiles (`pmtiles` CLI)
| 1.31.2
| https://github.com/protomaps/go-pmtiles
|===
To update a vendored library: download its package (e.g.
`npm pack <name>@<version>`), replace the corresponding files under
`public/vendor/<name>/`, and update the version in this file.
`public/vendor/<name>/`, and update the version in this file. To
update go-pmtiles, bump `PMTILES_VERSION` in the `Dockerfile` and the
version here.