Docker reports wront Architecture

Hi Guys,

Happy with all great code and tuning provided by the team behind CoreELEC - big thanks.

Docker is great addition to CoreELEC unlocking full power of Odroid N2, unfortunately did run into issue.

Docker on CoreELEC reports wrongly as OS/ARch linux/arm, whilst it should be linux/arm64.

This changes highly type of images which can be run under Docker and causes it to try to find images wrong images. Whilst some most popular will work fine, but others won’t. Took me quite a bit of time to identify the difference.

Same system running ubuntu with Docker shows proper linux/arm64.

If you could suggest at least quick workaround how to force it to report arm64 if not detected automatically that would be grant. Let’s just take the advantage of arm64 vs arm.

Thanks!

Output of docker version on CoreELEC:
Client:
Version: 18.09.7
API version: 1.39
Go version: go1.12.6
Git commit: 18.09.7
Built: Mon Feb 3 04:56:39 UTC 2020
OS/Arch: linux/arm
Experimental: true

Server:
 Engine:
  Version:          18.09.7
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.12.6
  Git commit:       18.09.7
  Built:            Mon Feb  3 04:56:39 UTC 2020
  OS/Arch:          linux/arm
  Experimental:     true

# docker info
Server Version: 18.09.7
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: journald
Cgroup Driver: systemd
Plugins:
 Volume: local
 Network: bridge host ipvlan macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 1.2.7
runc version: v1.0.0-rc8
init version: fec3683b971d9c3ef73f284f176672c44b448662
Kernel Version: 4.9.113
Operating System: CoreELEC (official): nightly_20200214
OSType: linux
Architecture: aarch64
CPUs: 6
Total Memory: 3.622GiB
Name: n2test
ID: S33D:XLKT:VLXJ:L5UN:YYCB:22BI:QBWR:E2SC:VHAQ:B4UB:V6W3:L5XM
Docker Root Dir: /var/media/storage-hdd/docker/var
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 52
 Goroutines: 81
 System Time: 2020-02-23T23:46:02.890880856Z
 EventsListeners: 1
Registry: https://index.docker.io/v1/
Labels:
Experimental: true
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

WARNING: No swap limit support
WARNING: No cpu cfs quota support
WARNING: No cpu cfs period support

On Ubuntu
#docker version
Client:
Version: 18.09.7
API version: 1.39
Go version: go1.10.1
Git commit: 2d0083d
Built: Fri Aug 16 14:20:24 2019
OS/Arch: linux/arm64
Experimental: false

Server:
 Engine:
  Version:          18.09.7
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.1
  Git commit:       2d0083d
  Built:            Wed Aug 14 19:41:23 2019
  OS/Arch:          linux/arm64
  Experimental:     false

Thanks!

p.s. not sure what’s wrong with formatting, but it doesn’t cooperate with me.

Looks ok to me. CoreELEC is a 32bit userspace on top of 64bit kernel system.
So essentially it’s a 32bit system, and this is represented correctly in Docker.

Thank you.
Any chances it will be brought up to 64bit userspace?

For records - running arm64v8 containers works just fine though need to be specifically pulled as by default v7 are pulled - hence thought it could be somehow fixed.

1 Like

Unlikely. We keep userspace at 32bit because that’s the best way to keep addons and other stuff compatible and running without issues.