Не могу набрать в консоли ipdb в контейнере Docker

Я использую docker-compose для сборки моего docker-контейнера и запускаю контейнер с --service-ports пометить так:

docker-compose run --service-ports $(service_name) -d

При попытке вызвать ipdb внутри скрипта Python в контейнере с помощью import ipdb; ipdb.set_trace() ipdb инициализирован, но я ничего не могу набрать в консоли. Я также должен вручную перезапустить сеанс терминала, чтобы остановить его (CTRL+C, CTRL+D и т.д. ничего не делать). Это не так, как будто терминал тоже завис, так как я все еще могу прокручивать назад и при фокусировке / расфокусировке курсор также меняет внешний вид.

Вот как выглядит мой термин (я использую iTerm): введите описание изображения здесь

Любые идеи, как это исправить?

2 ответа

Решение

Оказывается, сводится к ipdb несовместим с eventlet.monkey_patch в док-контейнере.

Простое исправление, переключитесь на pdbpp:D

Следующая ссылка у меня тоже работает для ipdb:

https://blog.lucasferreira.org/howto/2017/06/03/running-pdb-with-docker-and-gunicorn.html

Другие вопросы по тегам