It seems that weaveworks/weaveexec-arm64:1.9.3 contains docker client binary that is not working with arm64. Tested this with Packet.net Type2A bare metal server using Ubuntu 16.04 / Docker 1.12.6. I got it working after I built docker-client for arm64 and copied that into weaveexec image.
Thanks for reporting. We will take a look into the issue.
Just to confirm:
# docker run --rm -ti --entrypoint=/bin/sh weaveworks/weaveexec
/home/weave # apk add --update file
[...]
/home/weave # file /usr/bin/docker
/usr/bin/docker: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, not stripped
/home/weave # /usr/bin/docker --version
Segmentation fault
I think the theory was that an arm32 binary would run on an arm64 machine, but clearly not the case here.
And now I can't figure out where to download an "official" arm64 docker binary from. Docker state on get.docker.com that they don't support aarch64
@bboreham I had to compile it from the source.. did not find any official binaries.
The reason I did it this way is the absence of official arm64 docker builds
And arm 32-bit works in most of the cases on arm64, but I know that's not the case for the 2A...
If someone can provide reliable builds this is super-easy to fix
hey @luxas - @DieterReuter has a Docker build that he did for ARMv8 on the Raspberry Pi 3.
For Ubuntu 1604 LTS there is a Docker 1.12.6 that you can get from apt-get. I suppose that's one way of getting a stable Docker client binary into the system, but I don't know if it's recent enough for weaveexec.
@vielmetti we only need a version as recent as 1.10.3.
Where is that Ubuntu package available for download? For instance at http://packages.ubuntu.com/xenial-updates/arm64/docker.io/download I see no download locations listed.
@bboreham I am looking at
https://launchpad.net/ubuntu/+source/docker.io
which has 1.10.3 and 1.12.6 .deb files for Docker available. e.g at
https://launchpad.net/ubuntu/+archive/primary/+files/docker.io_1.10.3-0ubuntu6_arm64.deb
Would anyone like to try this? (Using latest images; we haven't done a release with that change)
I think my last run on Packet using https://git.io/weave-kube-1.6 was successful.
@vielmetti Can you verify as well please?
@bboreham and @luxas - happy to test - can you point me at an image I can try just to confirm?
Thanks for offering, but note weave-kube never uses the Docker client binary so is not affected by this issue. It applies to commands run via the weave script.
Specifically the image to test is weaveworks/weaveexec:latest
When I try weaveworks/weaveexec:latest I run into this problem
if ! DOCKER_VERSION=$(docker -v | sed -n -e 's|^Docker version \([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*|\1|p') || [ -z "$DOCKER_VERSION" ] ; then
resulting in the error ERROR: Unable to parse docker version.
I'm not convinced I'm testing this right.
# docker run --rm -ti --entrypoint=/bin/sh weaveworks/weaveexec:latest
/home/weave # ./weave
./weave: line 252: docker: not found
ERROR: Unable to parse docker version
@vielmetti use the snapshot release, and test that normally.
Though I have just found #3121.
Fixed by no longer using the docker binary, in #3110