Как отладить контейнер python в intellij?

плагин docker имеет порт отладки для подключения к контейнеру enter image description here

У меня есть приложение python, но в соответствии с docs порт отладки поддерживается только для java.

Как установить точки останова и отладить контейнер python в intellij? Есть ли способ подключить контейнер python к отладчику IntelliJ python?

Edit: я запускаю Windows 10, docker для Windows и контейнер это linux. Возможно, мне нужно вручную настроить какую-то удаленную отладку для отладчика intellij Python? Кроме того, можно также спросить, должна ли у меня быть профессиональная версия для удаленной отладки или есть обходной путь с помощью сообщества?

1 ответов


вы можете сделать это с помощью удаленной отладки Python. Откройте окно конфигурации и нажмите на + -> Python Remote Debug

Python Debugger Option

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

Python Remote Debug

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

Starting debug server at port 57588
Use the following code to connect to the debugger:
import pydevd
pydevd.settrace('localhost', port=57588, stdoutToServer=True, stderrToServer=True)
Waiting for process connection...

теперь вам нужно настроить отладку pydev внутри докер. Вам понадобится pycharm-debug-py3k.egg для этого. Для меня я скопировал в текущую папку Dockerfile, как показано ниже

cp "/Users/tarun.lalwani/Library/Application Support/IntelliJIdea2017.2/python/pycharm-debug-py3k.egg" .

расположение для вашего изменится в зависимости от установленной версии IntelliJ. После этого нам нужно отредактировать наш Dockerfile

FROM python:3.6
WORKDIR /app
ENV PYTHONPATH=/app:/app/debug
COPY pycharm-debug-py3k.egg /app/debug
COPY debug_test.py /app/
CMD python debug_test.py

The debug_test.py при построении будет иметь ниже строк вверху

import pydevd
pydevd.settrace('docker.for.mac.localhost', port=55507, stdoutToServer=True, stderrToServer=True)

Примечание: я использовал docker.for.mac.localhost как я использую docker для mac, но если использовать Docker для windows, то используйте docker.for.win.localhost. Для toolbox или linux вы добавит IP вашей машины

поскольку это docker, мы, вероятно, хотим сохранить порт фиксированным, а не динамическим, как я. Теперь мы создадим файл docker и запустим его.

это откроет всплывающее окно в pycharm, нажмите autodetect, чтобы обнаружить сопоставления источника

Auto detect

и тогда у вас будет ваш код breakpointed в главной строке вашего файла

Debug Local Execution Remote