Using curl -L “https://github.com/docker/compose/releases/download/1.24.1/docker-compose-(uname -s)-(uname -m)” > docker-compose
fails on Raspbian as described in issue #6810.
The root causes are:
https://github.com/docker/compose/releases only contain releases for amd64 / x64-64.
https://hub.docker.com/r/docker/compose is not multi-arch enabled.
While issue #6810 was closed, I think this is a genuine feature request since instructions at https://docs.docker.com/compose/install/#install-as-a-container are not clear about which platforms are officially supported to run docker-compose as a container.
Two recent events may now make this worth:
The new RPi4 has real 1Gbit ethernet. It becomes a real platform for hobbyist with limited linux experience using Raspbian to host images.
Docker Hub has real native support for multi-arch images via manifest v2.
Combined with the fact that docker-compose is a core building block for orchestrating images, the lack of support on arm v7 (32 bits) and v8 (64 bits) makes the bootstrapping process options more limited than on x86 equivalent and the documentation is not clear about which options work where.
As stated at #4733 (comment), there used to be a Dockerfile.armhf. This file was deleted in #6666 by @joakimr-axis since the current one works just fine.
Describe the solution you’d like
Officially create armv7 and arm64v8 docker images to https://hub.docker.com/r/docker/compose as part of the release process.
This is essentially a process change, not a code change, since the Dockerfile is known to work on arm already. This would involve at the very least updating .circleci/config.yml.
Describe alternatives you’ve considered
Installing via pip works in the meantime but is trickier to run this process successfully for new comers with limited linux experience, especially that the documentation is misleading about what is supported and what is not. This leads to a poor user experience (UX).