Shippable / support

Shippable SaaS customers can report issues and feature requests in this repository
101 stars 28 forks source link

How to upgrade the docker version on build nodes #5155

Open mohamedghozzi-lw opened 4 years ago

mohamedghozzi-lw commented 4 years ago

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

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?

trriplejay commented 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?