Votre navigateur n'est pas à jour !

Merci de mettre à jour votre navigateur pour utiliser mon blog. Mettre à jour mon navigateur maintenant

×

Python - Faire du débogage sur un conteneur avec Docker

Date de publication 28 sept. 2020
Nous avons vu dans un précédent article la configuration de base pour faire du débogage dans VSCode avec python

Pour cette fois nous allons rentrer un peu plus en détail sur le débogage d'une application python mais maintenant dans un conteneur docker.

Pour l'exemple suivant nous allons considérer une application web django.

Dans un premier temps nous allons configurer une tasks.json dans le dossier .vscode de votre projet

La tâche docker-build permet de build le conteneur déclaré dans tag avec son Dockerfile associé.

La tâche docker-run est présent pour lancer le conteneur précédemment buildé. Il exécute la commande placée dans args
python manage.py runserver 0.0.0.0:8000
permettant de lancer le serveur. La configuration dockerRun correspond aux paramètres de votre conteneur, qui dépendra de ce que vous avez mis dans votre Dockerfile.

La documentation officielle vous donnera des informations complémentaires sur la configuration du build et du run.

À cette étape vous êtes prêt pour lancer le débogage.

Maintenant il est nécessaire de créer un launch.json dans .vscode afin de configurer le débogage via VSCode.
La documentation officielle vous donnera des informations complémentaires.
Important, si vous êtes sous Linux il est obligatoire de rajouter debugAdapterHost sinon votre point d'arrêt ne sera pas vu (issue ouverte à ce jour).

La valeur a indiqué dans ce champ est le résultat de cette commande

docker inspect bridge --format="{{(index .IPAM.Config 0).Gateway}}"

Si vous utilisez un docker-compose vous devez lancer vos autres dépendances en faisant un clic droit sur ce fichier Compose Up. Pensez à éteindre le conteneur que vous avez précédemment configuré avec VSCode car c'est celui-ci que vous cherchez à analyser.

Dans la configuration de votre application si vous cherchez, comme dans l'exemple, à joindre la base de données pensez à remplacer l'IP par celle de la gateway docker.

Il vous reste à placer un point d'arrêt et d'aller dans l'onglet Run de VSCode
blog comments powered by Disqus