Support for 64bit docker containers

Is it possible to use 64-bit docker container images on the Vero 4K+?

From what I can tell, the kernel is already 64-bit, but images pulled are for armhf

Specifically, looking for resolve this announcement End of an Arch | LinuxServer.io and continue to receive image updates

You should be able to run arm64 containers on Pi 4 and Vero 4K/4K+

That’s good to hear Sam.

That said, it’s proving to be difficult. It seems like it’s being picked up as arm/v7 and not arm/v8

Below is some outputs from different commands trying to triage this

System commands

osmc@osmc:~$ uname -m
aarch64
osmc@osmc:~$ uname -a
Linux osmc 4.9.269-16-osmc #1 SMP PREEMPT Tue Nov 1 15:44:25 UTC 2022 aarch64 GNU/Linux

Docker commands

osmc@osmc:~$ docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS  BUILDKIT PLATFORMS
default * docker                           
  default default         running 20.10.21 linux/arm/v7, linux/arm64, linux/arm/v6

I would expect to see linux/arm/v8 , but it’s not listed

Additionally, when trying to run the latest sonarr develop image

osmc@osmc:~$ docker run -d \
  --name=sonarr-demo2 \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -p 8989:8989 \
  -v /path/to/data:/config \
  --restart unless-stopped \
  linuxserver/sonarr:develop

It starts, but hangs with this log message

[custom-init] Legacy files folder /config/custom-cont-init.d is empty, deleting...

[ls.io-init] done.

    ********************************************************

    ********************************************************

    *                                                      *

    *                         !!!!                         *

    *          This Sonarr image does not support          *

    *   32 bit ARM due to lack of available OS packages    *

    *                                                      *

    *                                                      *

    ********************************************************

    ********************************************************

I’ve done some testing.

The kernel is 64-bit and even with the armhf version of Docker, you should be able to run 64-bit containers. I was able to start and enter a Debian container with:

docker run -it --security-opt seccomp:unconfined arm64v8/debian

We’ll look at 64-bit userland in the future. When I last looked at it for the Vero 4K / 4K+ in 2017, it had some serious problems.

So it just looks like you need to specify ARMv8 containers and make sure the containers have sufficient privileges (–security-opt seccomp:unconfined) to run [1] some containers

Sam

[1] 32 bit and 64 bit Debian containers have different permissions by default · Issue #20550 · moby/moby · GitHub

1 Like

Thanks for looking into this Sam.

I was able to reproduce running the ARMv8 Debian container with those extra flags.

Though looks like the linuxserver.io images have built-in startup checks which re-validate the ARM version.

For now I’ll continue to use the last ARMv7 released image. Hopeful for 64-bit userland in the future

64-bit userland is something we’ll look in to next year.

I’d try running setarch arm64 and using the arm64 version of Docker – that should be good enough.

1 Like