Не удается установить Docker Compose v2: «Недопустимый плагин, ошибка формата exec»

#docker #docker-compose #ubuntu-20.04

Вопрос:

Я установил новый docker compose интерфейс командной строки в соответствии с инструкциями на docs.docker.com (Ubuntu 20.04) и не может использовать плагин.

Команда docker compose help показывает:

 $ docker compose help
docker: 'compose' is not a docker command.
See 'docker --help' 
 

Когда я бегу docker help , я получаю:

 $ docker help

Usage:  docker [OPTIONS] COMMAND

[[ OMMITTED NORMAL OUTPUT ]]

Invalid Plugins:
  compose     failed to fetch metadata: fork/exec /home/myname/.docker/cli-plugins/docker-compose: exec format error

Run 'docker COMMAND --help' for more information on a command.

To get more help with docker, check out our guides at https://docs.docker.com/go/guides/
 

То же самое при установке под /usr/local/lib/docker/cli-plugins и запуске команды от имени root.

В настоящее время я использую docker версии 20.10.7 и docker-compose 1.28.0.

Что я делаю не так? Как заставить новичка compose работать?

Комментарии:

1. В сообщении об ошибке указано имя файла плагина и exec format error ; какой именно файл является плагином? Вам нужно распаковать его, или распаковать файл tar, или что-то еще?

2. @DavidMaze это двоичный файл, который загружается с github.com/docker/compose/releases/tag/v2.0.0 — согласно документам на связанном веб-сайте, распаковка не требуется, только chmod x

3. Вы проверили? file ~/.docker/cli-plugins/docker-compose ?

4. @DavidMaze :о, вы правы: ссылка неверна, в версии 2.0.0 не существует ресурса с таким именем! По-видимому, было исправлено в 2.0.1… Я ошибочно предположил, что curl произойдет сбой, если ссылка будет недействительной.

Ответ №1:

Проблема решена с версией 2.0.1 вместо 2.0.0

Пока документы не будут обновлены, просто измените команду cURL, чтобы загрузить более новую версию:

 curl -SL https://github.com/docker/compose/releases/download/v2.0.1/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
 

Причиной является отсутствие актива в выпуске Github.

Работает как заклинание:

 $ docker compose version
Docker Compose version v2.0.1
 

ИЗМЕНИТЬ: по состоянию на 26 октября 2021 года документация была обновлена для ссылки на правильный артефакт загрузки. Этот ответ остается верным в случае отсутствия артефактов, что может произойти в будущих версиях или других плагинах.