Je cours mon application django en utilisant docker compose
. Ngninx
et gunicorn
sont exécutés via supervisor
.Utilisation de pdb avec le superviseur
Cependant, je n'arrive pas à comprendre comment déboguer en utilisant pdb
. Quand je l'utilise:
import pdb
pdb.set_trace()
Après avoir exécuté la commande docker-compose up
, mon application et base de données commencent à courir et l'écran du terminal reste actif en attente de sortie supplémentaire pour afficher.
Lorsque mon code atteint pdb.set_trace()
, le terminal susmentionné reste tel quel mais l'interface (pdb)
n'apparaît pas.
Est-ce que quelqu'un pourrait savoir comment je pourrais déboguer mon application en utilisant pdb
? Y a-t-il autre chose que je dois utiliser?
Merci.
Mise à jour
docker-compose.yml
version: '3'
services:
db:
image: mysql/mysql-server:latest
container_name: my_container_name
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: "mydb"
MYSQL_USER: "myusername"
MYSQL_PASSWORD: "mypass"
MYSQL_ROOT_PASSWORD: "mypass"
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
command: mysqld
web:
build: .
container_name: my_container_name
ports:
- "9000:9000"
depends_on:
- db
supervisord.conf
[supervisord]
nodaemon=true
[program:nginx]
command=/usr/sbin/nginx
[program:djangoserver]
command=python /myapp/djangorest/manage.py runserver localhost:8000
stdin_open: true
tty: true
Vous exécutez le superviseur en tant que PID 1, cette approche ne fonctionnera pas. Vous devez utiliser des conteneurs séparés pour nginx et djnagoserver –
@TarunLalwani Merci pour cela. Finalement, il a fonctionné après la séparation des conteneurs. – leon