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 <me@adamwarner.co.uk>
This commit is contained in:
Adam Warner
2024-09-11 18:54:47 +01:00
parent 2823d1d1ce
commit e938d1a39b
2 changed files with 20 additions and 4 deletions

View File

@@ -18,7 +18,8 @@ usage() {
} }
# Set default values # 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 FTL_FLAG=false
# Parse command line arguments # Parse command line arguments
@@ -69,8 +70,9 @@ while [[ $# -gt 0 ]]; do
shift shift
;; ;;
-t | --tag) -t | --tag)
TAG="$2" CUSTOM_TAG="$2"
DOCKER_BUILD_CMD=${DOCKER_BUILD_CMD/pihole:local/$TAG} DOCKER_BUILD_CMD=${DOCKER_BUILD_CMD/$TAG/$CUSTOM_TAG}
TAG=$CUSTOM_TAG
shift shift
shift shift
;; ;;
@@ -88,3 +90,16 @@ done
# Execute the docker build command # Execute the docker build command
echo "Executing command: $DOCKER_BUILD_CMD" echo "Executing command: $DOCKER_BUILD_CMD"
eval $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

View File

@@ -83,11 +83,12 @@ RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then FTLARCH=amd64; \
&& echo "Arch: ${TARGETPLATFORM}, FTLARCH: ${FTLARCH}" \ && echo "Arch: ${TARGETPLATFORM}, FTLARCH: ${FTLARCH}" \
&& curl -sSL "https://ftl.pi-hole.net/${FTL_BRANCH}/pihole-FTL-${FTLARCH}" -o /usr/bin/pihole-FTL \ && curl -sSL "https://ftl.pi-hole.net/${FTL_BRANCH}/pihole-FTL-${FTLARCH}" -o /usr/bin/pihole-FTL \
&& chmod +x /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 FROM base AS local-ftl-install
# pihole-FTL must be built from source and copied to the src directory first! # pihole-FTL must be built from source and copied to the src directory first!
COPY --chmod=0755 pihole-FTL /usr/bin/pihole-FTL 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 # Use the appropriate FTL Install stage based on the FTL_SOURCE build-arg
FROM ${FTL_SOURCE}-ftl-install AS final FROM ${FTL_SOURCE}-ftl-install AS final