Open mohamedghozzi-lw opened 4 years ago
At this time there is no way to manually update the docker version on the dynamic build nodes, and we don't provide any nodes with a more recent version. I think you could work around this by using a custom node, and installing the version of docker you prefer. would that work for you?
I am trying to create an ARM64 docker image using x86 build nodes. I tried both build nodes Ubuntu 14.04 and Ubuntu 16.04. They both come with an old version of docker that incorrectly sets the architecture in the created image as AMD64. This is issue was fixed in newer versions of docker as per this commit: https://github.com/moby/moby/pull/36816
Docker version on Shippable build nodes:
Client: Version: 18.03.1-ce API version: 1.37 Go version: go1.9.5 Git commit: 9ee9f40 Built: Thu Apr 26 07:18:46 2018 OS/Arch: linux/amd64 Experimental: false Orchestrator: swarm
Server: Engine: Version: 18.03.1-ce API version: 1.37 (minimum version 1.12) Go version: go1.9.5 Git commit: 9ee9f40 Built: Thu Apr 26 07:16:59 2018 OS/Arch: linux/amd64 Experimental: false
To reproduce the problem:
cat < Dockerfile
FROM multiarch/qemu-user-static:x86_64-aarch64 as qemu
FROM arm64v8/ubuntu:18.04
COPY --from=qemu /usr/bin/qemu-aarch64-static /usr/bin
CMD ["/bin/bash"] EOF
Build the container sudo docker build -t myarm64test .
The image architecture is set to AMD64 instead of ARM64: docker image inspect myarm64test
Notice that the architecture is set to AMD64 ... "Architecture": "amd64", "Os": "linux", ...
On a system with docker version 18.09.7 or above, the architecture is set correctly to the base image architecture (arm64 in this case).
Is there a way to upgrade the docker version on the build nodes? Is there build nodes provide by Shippable that have a higher version of docker pre-installed? Is there any workaround to the issue I am facing if upgrading docker on build nodes is not possible?