From 624d2719a96b403366fdcf9370e9e5601499dc37 Mon Sep 17 00:00:00 2001 From: renaud gaudin Date: Wed, 21 Jun 2023 13:41:47 +0000 Subject: [PATCH] Fixed #351: docker images for all supported architectures Copies behavior from kiwix-tools Requires VERSION=3.2.0-1 or later --- docker/Dockerfile | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 999e90f5..7d6b81bf 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,11 +1,34 @@ -ARG VERSION= -FROM alpine:3 -ARG VERSION +FROM alpine:3.18 LABEL org.opencontainers.image.source https://github.com/openzim/zim-tools -RUN echo "Build image for version: $VERSION" -RUN wget -O - -q https://download.openzim.org/release/zim-tools/zim-tools_linux-x86_64-$VERSION.tar.gz | tar -xz && \ - cp zim-tools*/* /usr/local/bin/ && \ - rm -rf zim-tools* +# TARGETPLATFORM is injected by docker build +ARG TARGETPLATFORM +ARG VERSION + +RUN set -e && \ + apk --no-cache add dumb-init curl && \ + echo "TARGETPLATFORM: $TARGETPLATFORM" && \ + if [ "$TARGETPLATFORM" = "linux/386" ]; then ARCH="i586"; \ + # linux/arm64/v8 points to linux/arm64 + elif [ "$TARGETPLATFORM" = "linux/arm64/v8" \ + -o "$TARGETPLATFORM" = "linux/arm64" ]; then ARCH="aarch64"; \ + # linux/arm translates to linux/arm/v7 + elif [ "$TARGETPLATFORM" = "linux/arm/v7" ]; then ARCH="armv8"; \ + elif [ "$TARGETPLATFORM" = "linux/arm/v6" ]; then ARCH="armv6"; \ + elif [ "$TARGETPLATFORM" = "linux/amd64/v3" \ + -o "$TARGETPLATFORM" = "linux/amd64/v2" \ + -o "$TARGETPLATFORM" = "linux/amd64" ]; then ARCH="x86_64"; \ + # we dont suppot any other arch so let it fail + else ARCH="unknown"; fi && \ + # download requested kiwix-tools version + url="https://download.openzim.org/release/zim-tools/zim-tools_linux-$ARCH-$VERSION.tar.gz" && \ + echo "URL: $url" && \ + curl -k -L $url | tar -xz -C /usr/local/bin/ --strip-components 1 && \ + # only needed in dockerfile + apk del curl + +# expose kiwix-serve default port +EXPOSE 80 +ENTRYPOINT ["/usr/bin/dumb-init", "--"] CMD ["/bin/sh", "-c", "echo 'Welcome to zim-tools! The following binaries are available:' && ls /usr/local/bin/"]