I recently installed a jenkins using docker using the official image from blueocean. It is based on alpine linux.

Now I cant run 32bit programs on it

 $ /opt/android-sdk-linux/build-tools/25.0.3/aapt
 bash: /opt/android-sdk-linux/build-tools/25.0.3/aapt: No such file or 

And I can't find out which packages need to be installed for running 32 bit programs. Could It be possible that the official blueoceans (jenkins) image does not support running 32bit programs when it is impossible to build many things without it.

Also, I found out this issue which says

"it doesn't seem that it is possible to build android currently on alpine"

But can't wrap my head around it. Can someone confirm this?

  • What does ldd /opt/android-sdk-linux/build-tools/25.0.3/aapt say? Also try to use strace to understand what is happening. Have you installed some 32 bits variant of essential runtime shared libraries (e.g. libc6-i386) – Basile Starynkevitch Aug 25 '17 at 5:33
  • I cannot find libc6-i386 alternate for alpine linux – JehandadK Aug 25 '17 at 8:05

musl (and therefore Alpine) doesn't really support "multilib" like glibc. You need to have a 32-bit environment in a chroot to run 32-bit applications. Follow the chroot install guide on the wiki, and make sure to pass --arch x86 to each apk command; this will give you a 32-bit chroot on which you can run 32-bit applications.

As for running Android development tools on Alpine: I started a library called gcompat that attempts to allow glibc binaries to run natively on musl without using glibc. There are a few outstanding issues left before it can run the Android tools, but more testing is always welcome.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.