Weave: ARM64 weaveexec image has wrong docker client binary

Created on 8 Mar 2017  路  18Comments  路  Source: weaveworks/weave

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.

bug

All 18 comments

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

3110 should have fixed this, because the Docker binary is no longer included in the image.

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

Was this page helpful?
0 / 5 - 0 ratings