halkyon/deploy/maps/Dockerfile

22 lines
1 KiB
Text
Raw Normal View History

# The instance's own map tiles (Halkyon Train's ADR 0030, D50): go-pmtiles, checked
# against GitHub's SHA-256 of its release, serving the region's cut of Protomaps'
# basemap, and cutting it anew each month (tiles.sh). Built from the repository root:
#
# docker build -f deploy/maps/Dockerfile .
FROM alpine:3.22
# go-pmtiles v1.31.2, released 22 Jul 2026 (BSD-3-Clause).
ADD --checksum=sha256:3ed7dbf4ec2e6dfe5e25b6f70d1ffc932729f93c86db353bf514dd71010a312f \
https://github.com/protomaps/go-pmtiles/releases/download/v1.31.2/go-pmtiles_1.31.2_Linux_x86_64.tar.gz /tmp/pmtiles.tar.gz
RUN apk add --no-cache curl ca-certificates \
&& mkdir -p /app \
&& tar -xzf /tmp/pmtiles.tar.gz -C /app pmtiles \
&& rm /tmp/pmtiles.tar.gz
COPY --chmod=755 deploy/maps/tiles.sh /app/tiles.sh
ENV PATH="/app:$PATH"
EXPOSE 8080
# The tiles in /tiles (a volume), `/<name>/{z}/{x}/{y}.mvt` for each `<name>.pmtiles`;
# no TileJSON (Train's style names the tiles itself), no CORS (no browser asks).
CMD ["pmtiles", "serve", "/tiles", "--port", "8080", "--cache-size", "256"]