Не могу набрать в консоли 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