Vous pouvez le faire en utilisant Python Remote Debugging. Ouvrez la fenêtre de configuration et cliquez sur + -> Python débogage à distance
Ensuite, vous soit mis un port ou garder le champ vide pour PyCharm de trouver un port disponible.
Cliquez ensuite sur l'icône de débogage pour lancer le serveur de débogage qui montrera ci-dessous type de message
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...
Maintenant, vous devez débogage pydev d'installation à l'intérieur docker. Vous aurez besoin de pycharm-debug-py3k.egg
pour cela. Pour moi, je copiais sur mon dossier en cours Dockerfile comme ci-dessous
cp "/Users/tarun.lalwani/Library/Application Support/IntelliJIdea2017.2/python/pycharm-debug-py3k.egg" .
L'emplacement de votre va changer en fonction de la version IntelliJ installée. Après cela, nous devons modifier notre 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
Le debug_test.py
lors de sa construction aura en dessous des lignes en haut
import pydevd
pydevd.settrace('docker.for.mac.localhost', port=55507, stdoutToServer=True, stderrToServer=True)
Note: Je l'ai utilisé docker.for.mac.localhost
comme je l'utilise docker pour mac, mais si vous utilisez Docker pour Windows, utilisez docker.for.win.localhost
. Pour toolbox ou linux vous ajouterez l'adresse IP de votre machine
Comme il est docker, nous voulons probablement garder le port fixe au lieu de dynamique comme je l'ai fait. Maintenant, nous construisons le fichier docker et l'exécutons.
Cela ouvrira une fenêtre contextuelle dans PyCharm, cliquez sur autodetect pour détecter les correspondances source
Et vous aurez votre code breakpointed à la ligne principale de votre fichier
Quel système d'exploitation hôte utilisez-vous? –
Windows est mon système d'exploitation, le conteneur est Linux – red888