Рейтинг:0

Docker-compose, установленный с Snap, выдает ошибку в файле YML

флаг in

Я установил докер с Snap Package Manager. Он говорит, что у него последняя версия, но docker-compose выдает ошибку о синтаксисе, которая выглядит так, как будто это не последняя версия.

Пример docker-compose.yml

версия: '3.9'

Сервисы:

  документация:
    изображение: nginx: последний
    имя_контейнера: документы
    тома:
      - ./сайт:/var/www/html
      - ./etc/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
      - ./var/журнал/nginx:/var/лог/nginx
    сети:
      моя сеть:
        ipv4_адрес: 172.30.0.110

сети:
  моя сеть:
    внешний: правда
    имя: моя сеть

На DigitalOcean

$ docker-compose --version
docker-compose версии 1.27.4, сборка 40524192

И команда конфигурации docker-compose выглядит хорошо.

На моем Ubuntu с Docker в Snap

cops@emdev01:~/cops/documentation$ docker-compose --version
docker-compose версии 1.25.5, сборка неизвестна

И команда конфигурации docker-compose дает следующий вывод:

Конфигурация $ docker-compose
ОШИБКА: версия в «./docker-compose.yml» не поддерживается. 
Возможно, вы видите эту ошибку из-за того, что используете неправильную версию файла Compose. 
Либо укажите поддерживаемую версию (например, «2.2» или «3.3»), либо поместите определения службы 
под ключом `services` или опустите ключ `version` и поместите определения служб в 
корень файла для использования версии 1.

Дополнительные сведения о версиях формата файла Compose см. на странице https://docs.docker.com/compose/compose-file/.

Docker-compose использовал:

$ который докер-компонует
/snap/bin/docker-compose

И информация показывает следующее:

$ sudo snap информационный докер
имя: докер
резюме: среда выполнения контейнера Docker
издатель: Canonical™
URL-адрес магазина: https://snapcraft.io/docker
контакт: https://github.com/docker-snap/docker-snap/issues?q=
лицензия: (Apache-2.0 И MIT И GPL-2.0)
описание: |

[СНИП]

Сервисы:
  docker.dockerd: простой, включенный, активный
идентификатор оснастки: sLCsFAO8PKM5Z0fAKNszUOX0YASjQfeZ
отслеживание: последнее/стабильное
дата обновления: сегодня в 09:46 UTC
каналы:
  последняя/стабильная: 20.10.8 2021-08-27 (1125) 122 МБ -
  последний/кандидат: 20.10.8 2021-09-29 (1234) 121MB -
  последняя/бета: 20.10.9 2021-10-08 (1310) 122MB -
  последняя/крайняя: 20.10.9 2021-11-09 (1399) 122 МБ -
  17.03/стабильная: 17.03.2-ce-1 20 июля 2017 г. (159) 42 МБ -
  17.03/кандидат: 17.03.2-ce-1 2017-06-30 (159) 42MB -
  17.03/бета:
  17.03/край: 17.03.2-ce-1 2017-06-30 (159) 42MB -
установлено: 20.10.8 (1125) 122 МБ -
adminlinux@emdev01:~$

Итак, приведенное выше выглядит так, будто я использую последнюю версию Docker, установленную вместе со Snap.

Тогда почему я получаю сообщение об ошибке в файле docker-compose?

muru avatar
флаг us
https://docs.docker.com/compose/compose-file/compose-file-v3/ говорит, что последняя версия файла Compose (`3.9`) реализована Docker Compose 1.27.0+. Снап имеет более старую версию, как видите. Docker Compose выпускается независимо от самого Docker.
BertC avatar
флаг in
Ага, спасибо. И поскольку docker-compose не предлагается в виде Snap-пакета, мне нужно установить его старомодным способом, я думаю.
BertC avatar
флаг in
Хорошо, это не работает. /snap/bin/docker-compose все еще существует, а docker-compose, установленный в /usr/local/bin, недоступен пользователю без привилегий.
Рейтинг:0
флаг in

Исправил это, удалив Snap-версию Docker и установив Docker по старинке с помощью apt.

Причина в том, что Snap делает некоторые странные вещи. @muru сказал мне, что docker-compose не является частью пакета Snap. Но есть файл /snap/bin/docker-compose. Это старая версия, и для Docker-Compose нет Snap Package, не говоря уже об одной из более поздних дат.

Поэтому я удалил Docker из Snap и снова установил Docker с помощью Apt.

Теперь все работает как положено.

muru avatar
флаг us
Я не говорил, что docker-compose не является частью пакета docker snap. Я сказал, что docker-compose выпускается независимо от docker, поэтому последний снимок docker не обязательно должен иметь последнюю версию docker-compose.
BertC avatar
флаг in
Ага, ок, извини. Тогда неправильно понял. По крайней мере у меня сейчас работает без Snap

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.