Compose: Please support ARM64 binary downloads

Created on 19 May 2020  ·  17Comments  ·  Source: docker/compose

Description of the issue

Docker Compose fails to run with the following error:

user@hostname:~$ sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100     9  100     9    0     0     38      0 --:--:-- --:--:-- --:--:--    38
user@hostname:~$ sudo chmod +x /usr/local/bin/docker-compose
user@hostname:~$ docker-compose
/usr/local/bin/docker-compose: line 1: Not: command not found

Context information (for bug reports)

Output of docker-compose version

Unable to run docker-compose

Output of docker version

user@hostname:~$ docker version
Client: Docker Engine - Community
 Version:           19.03.9
 API version:       1.40
 Go version:        go1.13.10
 Git commit:        9d98839
 Built:             Fri May 15 00:25:48 2020
 OS/Arch:           linux/arm64
 Experimental:      false
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version: dial unix /var/run/docker.sock: connect: permission denied

Output of docker-compose config
(Make sure to add the relevant -f and other flags)

Unable to run docker-compose

Steps to reproduce the issue

  1. Install docker-compose using Linux instructions from docs: https://docs.docker.com/compose/install/
  2. Try to run it
  3. CRASH

Observed result

The software crashes when trying to run it.

Expected result

The software would run successfully.

Stacktrace / full error message

/usr/local/bin/docker-compose: line 1: Not: command not found

Additional information

Running OS: Ubuntu Server 20.04 LTS

kinbug

Most helpful comment

Hi, yes we currently recommend the pip install method for Arm64. I will see if we can get arm64 binaries built as well.

All 17 comments

Also before someone says "it says the command isn't found, you need to download and install the binary" that error is from RUNNING the file. This is the output if the file doesn't exist:

user@hostname:~$ sudo rm /usr/local/bin/docker-compose 
user@hostname:~$ docker-compose

Command 'docker-compose' not found, but can be installed with:

sudo apt install docker-compose

This is not a bug in docker-compose

Check your PATH variable and make sure /usr/local/bin is in there

sudo echo $PATH

If not, add it to /root/.bashrc or something

Also I've always had to use sudo docker-compose which probably makes sense if you need sudo permissions to access docker itself

I KNEW someone would say that, which is why I made the above comment. It is finding the downloaded file, the error is with running it, not with not finding it. Please read what I previously said.

Hahaha! My bad

Yeah I misread that

Right, it says line 1: Not: Command not found so its happening in the code

What OS and architecture are you on? On my machine it works on a fresh debian VM without docker.

EDIT:
Its not this issue, since its actually downloading on your machine it seems...I wonder if docker-compose requires any external libraries that might be missing on your machine

Ah, that does seem to be the same issue. Let me try the steps in the answer to see if that fixes it.

Thanks!

The OS is Ubuntu Server 20.04 and architecture is ARM64.

EDIT: Actually after running uname -m it comes out as aarch64. Which is the same as ARM64, just the linux-y way of saying it.

Yeah, unfortunately doesnt seem like they post binaries for arm.

I have no idea how hard it would be to compile for source, but seems like they do support at least arm32, although someone had trouble doing so

I did find this. Its kind of old though

Also, may I suggest you change the title to "Please support ARM64 binary downloads" or something?

Changed the name, thanks! I had no idea it wasn't supported since there wasn't a note for compatibility on the documentation.

Same issue, I am trying to install it on my Raspberry Pi - *_3 - Raspbian OS_

Edit 2: Managed to bypass it using https://github.com/AppTower/docker-compose

Got it from the discussion here: https://github.com/docker/compose/issues/6831#issuecomment-568815378

Hey guys, same issue here. If you want to make sure it's the same issue just run cat /usr/local/bin/docker-compose you must see "Not Found".

@CorruptComputer Did you solve this issue ?

I installed docker-compose on centos7-arm64,
CMD

sudo yum install -y libffi libffi-devel openssl-devel python3 python3-pip python3-devel
sudo pip3 install docker-compose

If have some error,run it twice!

Hi, yes we currently recommend the pip install method for Arm64. I will see if we can get arm64 binaries built as well.

Hi, yes we currently recommend the pip install method for Arm64. I will see if we can get arm64 binaries built as well.

This would be great, as it takes long time to build with the pip install on some boards. We are currently maintaining a fork to get such binaries in https://github.com/dappnode/compose/releases/tag/1.25.5

@MaximeAubanel I did not, I ended up giving up on Docker and just installing the applications I was trying to run manually. Hopefully they support this someday, but for now its just not possible for me. Since one of the apps I use specifically says not to use the pip package for docker-compose, as it does not work.

@CorruptComputer I made it works installing it with apt-get:

sudo apt-get install docker-compose

Note that apt-get install docker-compose may get a very, very old version of docker-compose. On all Ubuntu before 20.04 and all Debian even with Buster you get old versions. Debian Buster gets 1.21.0

The sudo pip3 install docker-compose technique works on Debian Buster arm64 (Raspberry Pi OS 64-bit).

The pip technique isn't mentioned in https://docs.docker.com/compose/install/#install-compose-on-linux-systems and only way below the fold on that page, discussing "pre-release" versions.

This can be done by pip.
but offering an Arm-Release by official will be very helpful.

the pip version is a python script, with so many dependencies:

Installing collected packages: websocket-client, pycparser, cffi, bcrypt, pynacl, paramiko, docker, cached-property, distro, python-dotenv, PyYAML, texttable, attrs, pyrsistent, zipp, importlib-metadata, jsonschema, dockerpty, docopt, docker-compose
Successfully installed PyYAML-5.3.1 attrs-20.3.0 bcrypt-3.2.0 cached-property-1.5.2 cffi-1.14.3 distro-1.5.0 docker-4.3.1 docker-compose-1.27.4 dockerpty-0.4.1 docopt-0.6.2 importlib-metadata-2.0.0 jsonschema-3.2.0 paramiko-2.7.2 pycparser-2.20 pynacl-1.4.0 pyrsistent-0.17.3 python-dotenv-0.15.0 texttable-1.6.3 websocket-client-0.57.0 zipp-3.4.0

we can make this simple and clean.

Was this page helpful?
0 / 5 - 0 ratings