Description
Is your feature request related to a problem? Please describe.
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).
Activity
webash commentedon Nov 26, 2019
As a new user to Docker, hoping to make my Raspberry Pi 4 the test ground for learning Docker, this stumbling block has been impossible to get past. Every tutorial uses docker-compose and the fact that it seems impossible to obtain easily has wasted hours of my time.
There is no clear reason why this isn't the case. It should at least be called out in the installation documentation in the meantime.
For those trying to understand why it is so hard: there is no official documentation for getting Docker (and compose!) up and running on an RPI. The general Linux guidance doesn't work. There are hundreds of tutorials out there, all of them of varying ages (the older ones being most wrong), all with varying levels of self-described 'easy' steps, most of them involving what can only be best described as hacks. I just wanted a little bit of a home project to learn a new technology. Instead I've wasted my time frustratingly. KISS principles do not appear to have been followed here.
nemchik commentedon Nov 26, 2019
@webash I'm sorry to hear you've had troubles installing compose. You should be able to do it pretty easily by installing
python3
andpython3-pip
first and then runningpython3 -m pip install -IU docker-compose
.If you have further issues feel free to reach out via my contact info on my GitHub profile since this isn't really a support thread.
That being said I'm subscribed here hoping to see any kind of movement in this happening. I'd love to he able to run compose from docker on ARM. It works great on x86_64.
webash commentedon Dec 3, 2019
Python dependencies and the share number of them for
docker-compose
is a crime to install directly on a machine where containers will be used; so I ended up following these instructions for getting adocker-compose
container spun up on the Raspberry Pi.nemchik commentedon Dec 3, 2019
Interestingly those instructions use a Dockerfile from this very repo. I'm pretty sure all we're asking for is an
armhf
tag on docker hub. Maybe a multiarch manifest if the devs are feeling fresh 😉joakimr-axis commentedon Dec 6, 2019
Yes, multiarch would surely be the contemporary way.
Ivan61 commentedon Dec 25, 2019
@webash
I had built it on my Raspberry Pi 3 Model B Rev 1.2 with Raspbian10 (buster) [arm/v7].
You can try to do it on your Raspberry Pi 4.
I have the following images after
docker build
.The executable docker-compose binary file is inside
dockercompose:1.25.0
.alpine:3.10.1
is the base image ofdockercompose:1.25.0
. The other images are useless anymore. You can delete them.And don't try to copy it to Raspberry Pi and use it directly. Because it depends on other shared library inside
dockercompose:1.25.0
.It takes 40mins to build it on my Raspberry Pi 3. I had uploaded it to my docker-hub. If anyone want to use it on Raspberry Pi 3(arm/v7), please refer here.
build multiarch docker-compose images
build multiarch docker-compose images
build multiarch docker-compose images
44 remaining items