diff --git a/build-base/Dockerfile.dropshell-build-base b/build-base/Dockerfile.dropshell-build-base
index 8e6f81a..034466f 100644
--- a/build-base/Dockerfile.dropshell-build-base
+++ b/build-base/Dockerfile.dropshell-build-base
@@ -14,10 +14,15 @@ RUN apk add --no-cache \
     elfutils \
     elfutils-dev \
     elfutils-libelf \
+    file \
     g++ \
     git \
+    libevent-dev \
+    libevent-static \
     libdwarf \
     libdwarf-dev \
+    libtirpc-dev \
+    libtirpc-static \
     libunwind \
     libunwind-dev \
     libunwind-static \
@@ -31,9 +36,11 @@ RUN apk add --no-cache \
     pipx \
     pkgconf \
     pkgconfig \
+    rpcgen \
     # Removed SQLite3 packages since we'll build it from source
     util-linux-dev \
     util-linux-static \
+    wget \
     xz \
     xz-dev \
     xz-libs \
@@ -140,11 +147,21 @@ RUN wget https://www.sqlite.org/2024/sqlite-autoconf-3450000.tar.gz && \
 # Build MySQL statically
 ARG MYSQL_VERSION=8.0.36
 WORKDIR /tmp
-RUN curl -LO https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-${MYSQL_VERSION}.tar.gz && \
-    tar xzf mysql-${MYSQL_VERSION}.tar.gz && \
+RUN echo "Downloading MySQL ${MYSQL_VERSION}..." && \
+    wget -O mysql-${MYSQL_VERSION}.tar.gz https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-${MYSQL_VERSION}.tar.gz && \
+    echo "Extracting MySQL..." && \
+    tar -xzf mysql-${MYSQL_VERSION}.tar.gz && \
     cd mysql-${MYSQL_VERSION} && \
+    echo "Downloading Boost from archives.boost.io..." && \
     mkdir -p boost && \
-    curl -L https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.bz2 | tar xj -C boost && \
+    wget --tries=3 --timeout=30 -O boost_1_77_0.tar.bz2 \
+      "https://archives.boost.io/release/1.77.0/source/boost_1_77_0.tar.bz2" && \
+    echo "Verifying Boost download..." && \
+    file boost_1_77_0.tar.bz2 | grep -q "bzip2 compressed data" || \
+      (echo "ERROR: Downloaded file is not a valid bzip2 archive" && exit 1) && \
+    echo "Extracting Boost..." && \
+    tar -xjf boost_1_77_0.tar.bz2 -C boost --strip-components=1 && \
+    rm boost_1_77_0.tar.bz2 && \
     mkdir build && cd build && \
     cmake .. \
       -DCMAKE_BUILD_TYPE=Release \
diff --git a/build-base/debug-build.sh b/build-base/debug-build.sh
new file mode 100755
index 0000000..6fa0d79
--- /dev/null
+++ b/build-base/debug-build.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+set -euo pipefail
+
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+
+# Build with progress and no cache to see which step fails
+docker build \
+  --progress=plain \
+  --no-cache \
+  -t "gitea.jde.nz/public/dropshell-build-base:latest" \
+  -f "${SCRIPT_DIR}/Dockerfile.dropshell-build-base" \
+  ${SCRIPT_DIR}
\ No newline at end of file