From e938d1a39be2fd8521f27d86ea6b509e865d77f9 Mon Sep 17 00:00:00 2001 From: Adam Warner Date: Wed, 11 Sep 2024 18:54:47 +0100 Subject: [PATCH] Actually do something with the result of `readelf` in case of invalid FTL binary Remove the `cat` of the pihole-FTL binary as it could lead to a very difficult to read logs Add some more helpful output to the build script Signed-off-by: Adam Warner --- build.sh | 21 ++++++++++++++++++--- src/Dockerfile | 3 ++- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/build.sh b/build.sh index eafbf95d..2a5075b7 100755 --- a/build.sh +++ b/build.sh @@ -18,7 +18,8 @@ usage() { } # Set default values -DOCKER_BUILD_CMD="docker buildx build src/. --tag pihole:local --load --no-cache" +TAG="pihole:local" +DOCKER_BUILD_CMD="docker buildx build src/. --tag ${TAG} --load --no-cache" FTL_FLAG=false # Parse command line arguments @@ -69,8 +70,9 @@ while [[ $# -gt 0 ]]; do shift ;; -t | --tag) - TAG="$2" - DOCKER_BUILD_CMD=${DOCKER_BUILD_CMD/pihole:local/$TAG} + CUSTOM_TAG="$2" + DOCKER_BUILD_CMD=${DOCKER_BUILD_CMD/$TAG/$CUSTOM_TAG} + TAG=$CUSTOM_TAG shift shift ;; @@ -88,3 +90,16 @@ done # Execute the docker build command echo "Executing command: $DOCKER_BUILD_CMD" eval $DOCKER_BUILD_CMD + +# Check exit code of previous command +if [ $? -ne 0 ]; then + echo "" + echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + echo "!! ERROR: Docker build failed, please review logs above !!" + echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + exit 1 +else + echo "" + echo "Successfully built Docker image with tag '$TAG'" + docker images $TAG +fi diff --git a/src/Dockerfile b/src/Dockerfile index f822bfd6..a29f13de 100644 --- a/src/Dockerfile +++ b/src/Dockerfile @@ -83,11 +83,12 @@ RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then FTLARCH=amd64; \ && echo "Arch: ${TARGETPLATFORM}, FTLARCH: ${FTLARCH}" \ && curl -sSL "https://ftl.pi-hole.net/${FTL_BRANCH}/pihole-FTL-${FTLARCH}" -o /usr/bin/pihole-FTL \ && chmod +x /usr/bin/pihole-FTL \ - && readelf -h /usr/bin/pihole-FTL || cat /usr/bin/pihole-FTL + && readelf -h /usr/bin/pihole-FTL || (echo "Error with downloaded FTL binary" && exit 1) FROM base AS local-ftl-install # pihole-FTL must be built from source and copied to the src directory first! COPY --chmod=0755 pihole-FTL /usr/bin/pihole-FTL +RUN readelf -h /usr/bin/pihole-FTL || (echo "Error with local FTL binary" && exit 1) # Use the appropriate FTL Install stage based on the FTL_SOURCE build-arg FROM ${FTL_SOURCE}-ftl-install AS final