2016-11-27 29 views
1

Я использую Докер-Compose, чтобы построить свой Docker контейнер и бегает контейнер с --service-ports флагом, как так:Не удается ввести в IPDB консоли в Докер контейнере

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

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

Это то, что мой член выглядит (я использую iTerm): enter image description here

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

ответ

0

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

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

+0

К сожалению 'pdbpp' до сих пор не должным образом совместимы с Python 3.x, так что Обходной путь не работает во всех случаях. – Kevin

+0

Ahh, вот я все еще работаю в древней земле Python 2.7. По крайней мере, сейчас мы понимаем, что это просто проблема с индивидуальной индивидуальностью, мы можем изучить другие варианты. – steve