In many of my docker containers, I use Ubuntu images as the base image. Additionally, I usually run an apt update
and apt upgrade
in the build steps of my container. At one point, the builds would fail with something to this effect when x-compiling for ARM (Raspberry PI):
51.42 Unpacking libc-bin (2.35-0ubuntu3.8) over (2.35-0ubuntu3.7) ... 51.89 Setting up libc-bin (2.35-0ubuntu3.8) ... 52.23 Segmentation fault (core dumped) 52.40 Segmentation fault (core dumped) 52.41 dpkg: error processing package libc-bin (--configure): 52.41 installed libc-bin package post-installation script subprocess returned e rror exit status 139 52.45 Errors were encountered while processing: 52.45 libc-bin 52.56 E: Sub-process /usr/bin/dpkg returned an error code (1)
This turns out to be an issue QEMU on my linux box that I'm building these on. Now, on to the fix.
At this point, I just added a function to my bashrc file to just fix this where it happens.
function fix_docker_build() { # If there are errors processing libc-bin, run this # from https://t.brk.io/6A docker pull tonistiigi/binfmt:latest docker run --privileged --rm tonistiigi/binfmt --uninstall qemu-* docker run --privileged --rm tonistiigi/binfmt --install all }
You can run the individual commands or just add this to your bashrc file (and source ~/.bashrc
) and then just run fix_docker_build
anytime later.