From 7a0409f0692596b10a68b21b6ab6f617f104e211 Mon Sep 17 00:00:00 2001 From: "rishitesh.mishra@spaceandtime.io" Date: Wed, 8 Jul 2026 11:12:18 +0530 Subject: [PATCH 1/3] test: patchelf ELF interpreter in release docker image Nix-built sxt-node has an ELF interpreter pointing at /nix/store/... which parity/base-bin lacks, causing runtime ENOENT masked as '/usr/local/bin/sxt-node: No such file or directory'. This patches the interpreter to Ubuntu's default path before docker build to test if that alone unblocks execution. --- .github/workflows/release.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index eb805489..31ef35cb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -147,6 +147,15 @@ jobs: with: name: artifact_sxtnode path: target/release/ + - name: Patch ELF interpreter for Ubuntu base image + run: | + set -eux + sudo apt-get update -qq + sudo apt-get install -qq -y patchelf file + chmod +x target/release/sxt-node + file target/release/sxt-node + patchelf --set-interpreter /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 target/release/sxt-node + file target/release/sxt-node - name: Build and Release Dockerfile env: VERSION: ${{ needs.setup.outputs.VERSION }} From 318c8a33353507e74bec41e520891ceab0e85aa2 Mon Sep 17 00:00:00 2001 From: "rishitesh.mishra@spaceandtime.io" Date: Wed, 8 Jul 2026 12:59:50 +0530 Subject: [PATCH 2/3] test: bump base image to ubuntu:24.10 for glibc 2.40 Nix-built binary references GLIBC_2.38 and GLIBC_2.39 symbols. Ubuntu 22.04 (parity/base-bin:latest) only ships glibc 2.35. Ubuntu 24.10 provides glibc 2.40, matching Nix's toolchain. Explicit ca-certificates because ubuntu:24.10 doesn't ship them by default (parity/base-bin did). --- sxtnode.Dockerfile | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/sxtnode.Dockerfile b/sxtnode.Dockerfile index 6821de91..65d753f1 100644 --- a/sxtnode.Dockerfile +++ b/sxtnode.Dockerfile @@ -1,5 +1,7 @@ # Build SxT Node Image -FROM docker.io/parity/base-bin:latest +# Ubuntu 24.10 provides glibc 2.40, matching the Nix toolchain that +# builds sxt-node in CI. See PR #198 for the interpreter/glibc story. +FROM docker.io/library/ubuntu:24.10 # Switch to root user to make system-wide changes USER root @@ -9,8 +11,9 @@ RUN useradd -m -u 1001 -U -s /bin/sh -d /sxtuser sxtuser && \ mkdir -p /data /key /sxtuser/.local/share && \ chown -R sxtuser:sxtuser /data /key && \ ln -s /data /sxtuser/.local/share/sxtuser && \ - apt-get update --allow-insecure-repositories && \ + apt-get update && \ apt-get install -y \ + ca-certificates \ curl \ apache2-utils \ && apt-get clean && \ From 6eb9469b9edda852863bbc6b7a54c5f117198334 Mon Sep 17 00:00:00 2001 From: "rishitesh.mishra@spaceandtime.io" Date: Wed, 8 Jul 2026 13:24:02 +0530 Subject: [PATCH 3/3] test: switch to ubuntu:24.04 LTS (glibc 2.39) as base 24.04 provides glibc 2.39 which covers all GLIBC symbol versions the binary needs (2.38 and 2.39 were the flagged ones). Also more reliable apt mirrors in CI than the short-support 24.10. --- sxtnode.Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sxtnode.Dockerfile b/sxtnode.Dockerfile index 65d753f1..8810bdd6 100644 --- a/sxtnode.Dockerfile +++ b/sxtnode.Dockerfile @@ -1,7 +1,7 @@ # Build SxT Node Image -# Ubuntu 24.10 provides glibc 2.40, matching the Nix toolchain that -# builds sxt-node in CI. See PR #198 for the interpreter/glibc story. -FROM docker.io/library/ubuntu:24.10 +# Ubuntu 24.04 LTS provides glibc 2.39, which covers all GLIBC symbol +# versions referenced by the Nix-built binary. See PR #198. +FROM docker.io/library/ubuntu:24.04 # Switch to root user to make system-wide changes USER root