From 8ebd7e4ee21f7ade8c149024ee75f56265dd0e04 Mon Sep 17 00:00:00 2001 From: AI Assistant Date: Fri, 27 Mar 2026 20:41:37 +0200 Subject: [PATCH] fix(tippecanoe): build from source instead of unavailable ghcr.io image MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ghcr.io/felt/tippecanoe:latest returns 403 — no public Docker image. Build tippecanoe from GitHub source in a multi-stage Alpine build. Co-Authored-By: Claude Opus 4.6 (1M context) --- tippecanoe.Dockerfile | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/tippecanoe.Dockerfile b/tippecanoe.Dockerfile index 15b7a16..fd3a417 100644 --- a/tippecanoe.Dockerfile +++ b/tippecanoe.Dockerfile @@ -1,12 +1,18 @@ -FROM ghcr.io/felt/tippecanoe:latest AS tippecanoe +# Stage 1: build tippecanoe from source +FROM alpine:3.20 AS builder +RUN apk add --no-cache git g++ make sqlite-dev zlib-dev bash +RUN git clone --depth 1 https://github.com/felt/tippecanoe.git /src/tippecanoe +WORKDIR /src/tippecanoe +RUN make -j$(nproc) && make install + +# Stage 2: runtime with GDAL + tippecanoe + mc FROM osgeo/gdal:alpine-normal-latest -# Copy tippecanoe binary from felt image -COPY --from=tippecanoe /usr/local/bin/tippecanoe /usr/local/bin/tippecanoe -COPY --from=tippecanoe /usr/local/bin/tile-join /usr/local/bin/tile-join +COPY --from=builder /usr/local/bin/tippecanoe /usr/local/bin/tippecanoe +COPY --from=builder /usr/local/bin/tile-join /usr/local/bin/tile-join # Install MinIO client -RUN apk add --no-cache curl && \ +RUN apk add --no-cache curl bash && \ curl -fsSL https://dl.min.io/client/mc/release/linux-amd64/mc -o /usr/local/bin/mc && \ chmod +x /usr/local/bin/mc