Detecting the platform when running a Docker based build
Common advice is to use uname -m
or arch
commands which should report something like x86_64
or i686
for 64 or 32-bit flavours of Linux running on Intel-esque systems. This works fine when running on a real machine, but all falls apart when querying on 32 bit docker image running on a 64-bit host, since these commands query the underlying operating system kernel rather than the platform of the container.
A workaround is to look at the system’s binaries. The Elf format header specifies that the fourth byte of the header will either be 01
or 02
for a 32 or 64-bit system, so we can look at an assumed-available binary (such as /bin/bash
) and pull out the relevant information.
Imported using <script>
tag
Using plugin: