2025-07-15 16:41:35 -07:00
|
|
|
|
# syntax=docker/dockerfile:1
|
2026-03-20 08:41:37 -07:00
|
|
|
|
FROM alpine:latest@sha256:25109184c71bdad752c8312a8623239686a9a2071e8825f20acb8f2198c3f659
|
2025-07-15 16:41:35 -07:00
|
|
|
|
|
2025-07-22 11:38:02 -07:00
|
|
|
|
RUN apk add --no-cache curl tar git
|
2025-07-15 16:41:35 -07:00
|
|
|
|
|
2025-07-22 11:38:02 -07:00
|
|
|
|
ARG TARGETARCH
|
2025-07-15 16:41:35 -07:00
|
|
|
|
ENV TARGETARCH=${TARGETARCH}
|
|
|
|
|
|
|
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
|
|
|
|
|
|
|
RUN set -eux; \
|
|
|
|
|
|
# choose the right asset for this build platform
|
|
|
|
|
|
case "${TARGETARCH}" in \
|
|
|
|
|
|
amd64) SUFFIX="linux-x64.tgz" ;; \
|
|
|
|
|
|
arm64) SUFFIX="linux-arm64.tgz" ;; \
|
|
|
|
|
|
*) echo "unsupported arch ${TARGETARCH}" >&2; exit 1 ;; \
|
|
|
|
|
|
esac; \
|
|
|
|
|
|
# download & unpack
|
2025-07-17 15:11:35 -07:00
|
|
|
|
LATEST_URL=$(curl -fsSL https://api.github.com/repos/mongodb/kingfisher/releases/latest \
|
2025-07-15 16:41:35 -07:00
|
|
|
|
| grep -Eo "https://[^\"]*${SUFFIX}"); \
|
2025-07-17 15:11:35 -07:00
|
|
|
|
if [ -z "$LATEST_URL" ]; then \
|
|
|
|
|
|
echo "Failed to fetch the latest release URL for ${SUFFIX}" >&2; \
|
|
|
|
|
|
exit 1; \
|
|
|
|
|
|
fi; \
|
|
|
|
|
|
curl -fsSL "$LATEST_URL" -o kingfisher.tgz; \
|
|
|
|
|
|
tar -xzf kingfisher.tgz; \
|
2025-07-22 11:49:07 -07:00
|
|
|
|
rm -f kingfisher.tgz CHECKSUM-*.txt; \
|
2025-07-15 16:41:35 -07:00
|
|
|
|
# locate the binary (pattern covers kingfisher-linux-x64 / kingfisher-linux-arm64)
|
2025-07-17 15:11:35 -07:00
|
|
|
|
KF_PATH=$(find . -type f -name 'kingfisher*' -executable -print -quit); \
|
|
|
|
|
|
if [ -z "$KF_PATH" ]; then echo "No executable kingfisher binary found" >&2; exit 1; fi; \
|
2025-07-15 16:41:35 -07:00
|
|
|
|
install -m 0755 "$KF_PATH" /usr/local/bin/kingfisher; \
|
|
|
|
|
|
# optional cleanup to keep the image small
|
|
|
|
|
|
rm -rf /app/*
|
|
|
|
|
|
|
2026-03-20 09:25:05 -07:00
|
|
|
|
RUN addgroup -S app && adduser -S -G app -h /app app && chown -R app:app /app
|
|
|
|
|
|
|
|
|
|
|
|
USER app
|
|
|
|
|
|
|
2025-07-15 16:41:35 -07:00
|
|
|
|
# quick smoke-test so the build fails early if something’s wrong
|
|
|
|
|
|
RUN kingfisher --version
|
|
|
|
|
|
|
|
|
|
|
|
ENTRYPOINT ["kingfisher"]
|