mdsplus icon indicating copy to clipboard operation
mdsplus copied to clipboard

The "alpine*-armhf" images in Docker Hub (for the MDSplus build system) don't have a working Java

Open mwinkel-dev opened this issue 1 year ago • 2 comments

Affiliation MIT PSFC

Version(s) Affected Alpha, Stable

Platform alpine-3.3-armhf, alpine-3.6-armhf, alpine-3.9-armhf

Describe the bug Java does not work in the alpine*-armhf images that are in Docker hub and used by the MDSplus build system. This error was found when running with the QEMU emulation layer on an x86 Linux VM. (Did not check to see how the images behave when run on Raspberry Pi ARM hardware.) This issue applies to these four images:

  • alpine-3-3-armhf
  • alpine-3-6-armhf
  • alpine-3.6-armhf
  • alpine-3.9-armhf

To Reproduce Steps to reproduce the behavior:

  1. On an Ubuntu20 VM with Docker installed
  2. Make sure the following command is run after reboot . . .
  3. docker run --rm --privileged multiarch/qemu-user-static:register --reset
  4. Then run an image interactively as follows . . .
  5. docker run -it mdsplus/builder:alpine-3.9-armhf bash
  6. at the prompt, typejava -version
  7. Note that the version is never printed and the container hangs (which kills the build of MDSplus)

Expected behavior Expected the Java version to be displayed.

Screenshots n/a

Additional context Switching to alpine-3.10-armhf works fine. Built the 3.10 image using a slightly edited version of the 3.9 Dockerfile. (However, had to drop the hdf5 and hdf5-dev packages because they apparently no longer exist.) The java -version displays the version. Was able to compile and run a Java "hello, world" program. And the MDSplus build ran to completion on Ubuntu20 with the QEMU layer.

mwinkel-dev avatar May 26 '23 23:05 mwinkel-dev

Proposal is to add a new Docker image for alpine-3.14-armhf and delete all older *-armhf images.

The alpine-3.14-* images have Java that works and also switched to python3. Experiments show that MDSplus (including *.jar files) can be built with the QEMU emulation layer (but it is slow, ~1.5 hours per build). Thus the *-armhf builds should still be done on a Raspberry Pi system.

And of course if add alpine-3.14-armhf then also should add alpine-3.14-x86 and alpine-3.14-x86_64 Docker images.

Decision needs to be made whether should drop the older Docker images: alpine-3.9-*, alpine-3.6-*, alpine-3-6-*, alpine-3.3-* and alpine-3-3-*.

mwinkel-dev avatar Jun 02 '23 03:06 mwinkel-dev

Found that when run on a 32-bit Raspberry Pi, the old alpine-3.6-armhf image does not hang when type java -version. This implies that there is an incompatibility with the old alpine-*-armhf images and the QEMU emulation.

mwinkel-dev avatar Jun 27 '23 17:06 mwinkel-dev