Не удалось выполнить скрипт docker-compose

#docker-compose

#docker-compose

Вопрос:

Я использую Mac 10.11.6 El capitan и установил docker toolbox, и я пытаюсь использовать опцию сборки docker compose, но я выдаю некоторые ошибки следующим образом,

 kj$ docker-compose -f docker-compose-dev.yml build
Traceback (most recent call last):
  File "docker-compose", line 6, in <module>
  File "compose/cli/main.py", line 71, in main
  File "compose/cli/main.py", line 124, in perform_command
  File "compose/cli/command.py", line 41, in project_from_options
  File "compose/cli/command.py", line 113, in get_project
  File "compose/config/config.py", line 380, in load
  File "compose/config/config.py", line 380, in <listcomp>
  File "compose/config/config.py", line 513, in process_config_file
  File "compose/config/config.py", line 221, in get_service_dicts
  File "distutils/version.py", line 46, in __eq__
  File "distutils/version.py", line 337, in _cmp
TypeError: '<' not supported between instances of 'str' and 'int'
[83046] Failed to execute script docker-compose
  

Содержимое файла yml

 version: '3.3'

services:

  users:
    build:
      context: ./
      dockerfile: Dockerfile-dev
    volumes:
      - './:/usr/src/app'
    ports:
      - 5001:5000
    environment:
      - FLASK_APP=project/__init__.py
      - FLASK_ENV=development
  

Я не уверен, что вызывает эту проблему, пожалуйста, дайте свои предложения, спасибо

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

1. Что внутри вашего docker-compose-dev.yml файла? Похоже, это может быть связано с модулем Python.

2. Удалите лишние пустые новые строки в файле yaml

3. @Herman У меня нет дополнительного пустого

Ответ №1:

Ответ на этот вопрос довольно прост, это случилось со мной этим утром. Когда я закончил работу над своим проектом, я закрыл приложение docker для Mac (в основном ошибка говорит о том, что оно не может получить версию API Docker и / или docker-compose). Убедитесь, что ваш Docker для рабочего стола запущен, все остальное должно вернуться к нормальному состоянию.Проверьте это изображение, чтобы увидеть, запущен ли docker desktop.

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

1. Я прочитал это, подумал, что это ответ для чайников, а затем понял, что через несколько минут это был ответ, который мне был нужен! DOH

2. @danday74 спасибо за добавление этого комментария, потому что я был таким же, как вы … но, основываясь на вашем подтверждении, я попробовал, и для меня это тоже все уладило.

Ответ №2:

Я решил это, запустив службу docker:

 service docker start
  

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

1. работает у меня 30 декабря 2020 года. Просто изменяю дату

2. У меня это сработало, просто нужно было: запустить sudo service docker. Нет ли способа запустить его с помощью надстройки Docker внутри VSC?

Ответ №3:

У меня возникла та же проблема, что и упомянутая выше:

[49326] Не удалось выполнить скрипт docker-compose

Я использую Linux (ubuntu 20.04)

Но то, что я пропустил, заключалось в том, что когда я завершил установку docker на следующих шагах, это было упомянуто как шаги linuxpost-install. В нем четко указано, что после установки docker всегда запускается в корневом каталоге. Поэтому, пока вы не настроили некорневые параметры в настройках docker по этой ссылке, попробуйте использовать sudo перед вашей командой.

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

1. Ubuntu для меня, выполняющего руководство по docker java ( docs.docker.com/language/java/build-images ) в WSL. Перезапуск оболочки сработал для меня. Я удалил изображения и другие элементы на этой плате, но это не сработало. К счастью, это предложение ‘sudo’ также не сработало, потому что оно кажется очень пугающим.

Ответ №4:

Просто убедитесь, что приложение Docker открыто на вашем компьютере

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

1. Привет, вы должны указать более подробную информацию об этом ответе, например, как это проверить и почему?

Ответ №5:

У меня это сработало в Windows:

Панель управления => Программы и компоненты => Включить или выключить функцию Windows => включить все опции для Hyper-V

введите описание изображения здесь

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

1. Это не ответ на исходный вопрос. OP упомянул Mac OS, а не Windows.

2. Итак, вы думаете, что нам нужно создать дублирующий вопрос с macOS заменой на windows ?

Ответ №6:

На моей стороне мне удалось решить эту проблему путем «Сброса к заводским настройкам по умолчанию», то есть в настройках docker.

Ответ №7:

всем, кто пытается сделать это с --context , добавьте пользователя хоста в группу docker

на хосте ssh: sudo usermod -aG docker $USER

https://docs.docker.com/engine/install/linux-postinstall/

Ответ №8:

Только что столкнулся с этой проблемой этим утром на 10.14.6 (18G87) macOS, который я только что обновил до этого утра, после того как вчера все работало отлично.

Обнаружил, что в одном из моих файлов compose.yml использовались одинарные кавычки вокруг версии, когда она должна быть в двойных кавычках. Это устранило проблему для меня. Это не ошибка с Docker-compose.

Ответ №9:

GM

Причина этой проблемы в том, что службы Docker (engine) остановлены.

Помните, что в Docker-Docs вы должны прочитать «Шаги после установки», чтобы «Настроить Docker для запуска при загрузке».

https://docs.docker.com/engine/install/linux-postinstall/#configure-docker-to-start-on-boot

ie. для Redhat / CentOS

 $ sudo systemctl enable docker.service
$ sudo systemctl enable containerd.service
  

С уважением.

Ответ №10:

Перезапуск контейнера решил мою проблему.

Ответ №11:

Я использую WSL 2, и мне пришлось включить интеграцию с дистрибутивом WSL, который я использую. Это в Настройках> Ресурсы> Интеграция с WSL.

Ответ №12:

Я пытался откинуться с помощью следующей команды: docker-compose up -build

И я получил это сообщение:

docker.ошибки.Исключение DockerException: ошибка при выборке версии API сервера: (‘Соединение прервано.’, PermissionError(13, ‘В разрешении отказано’)) [5884] Не удалось выполнить скрипт docker-compose

Все, что мне нужно было сделать, это добавить «sudo» перед вышеупомянутой командой. sudo docker-compose up —build После этого запускается мой back :))

Ответ №13:

Просто я проверил общие настройки в Docker и включил использовать Docker Compose V2, и на самом деле это работает для меня.

Ответ №14:

У меня была такая же ошибка, и она была решена с помощью

 sudo service docker start
  

Ответ №15:

Измените версию на двойные кавычки, у меня это сработало. версия: «3.3»

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

1. Когда я скопировал версию: «3.3» с сайта, это не сработало. Двойные кавычки не интерпретировались на моем компьютере. Итак, я удалил и напечатал » и теперь это сработало.