fix: derive runtime deps via objdump; build the image in PR CI #2
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/image-runtime-deps"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The build-push on the #1 merge failed at the runtime-dep derivation step. Two independent problems, both fixed here:
1. ldd does not work under buildah chroot isolation. The step used
lddto find linked libraries;lddexecutes the dynamic loader, which the sandbox does not support, so it produced no paths and thetest -sguard failed the build. Switched toobjdump -p(a static read of the ELFNEEDEDentries), resolving each SONAME through theldconfigcache.2. merged-/usr path mismatch.
ldconfigreports libraries under/lib/..., but dpkg records them under/usr/lib/..., sodpkg -Smatched nothing even once paths were found. Each resolved path is nowrealpath-canonicalized before the lookup. (This would have bitten the ldd approach too.) Validated the full objdump -> ldconfig -> realpath -> dpkg pipeline against real binaries.Why it reached main: PR CI (
ci.yaml) only rancmake/makeand never built the image, so the Dockerfile-only bug passed the branch and failed on merge.ci.yamlnow builds the real image via buildah and smoke-tests the running daemon against/acng-report.html-- the same setupbuild-push.yamluses, minus the push. An image-only regression now fails the PR instead of main.The new PR job needs the
trusted-apt-cacher-ngrunner (infra#213, merged) andHARBOR_REGISTRYfor the base-image mirror; both are already in place since build-push ran.🤖 Generated with Claude Code