#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
Ответ №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» с сайта, это не сработало. Двойные кавычки не интерпретировались на моем компьютере. Итак, я удалил и напечатал » и теперь это сработало.