【发布时间】:2018-03-12 04:28:37
【问题描述】:
我正在使用 docker compose 运行我的 django 应用程序。 Ngninx 和 gunicorn 通过 supervisor 运行。
但是我似乎无法弄清楚如何使用pdb 进行调试。当我使用:
import pdb
pdb.set_trace()
运行命令docker-compose up 后,我的应用程序和数据库开始运行,终端屏幕保持活动状态,等待进一步的输出显示。
当我的代码到达pdb.set_trace()时,上述终端保持不变,但(pdb)界面没有出现。
有人知道我如何能够使用pdb 调试我的应用程序吗?还有什么我需要使用的吗?
谢谢。
更新
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
【问题讨论】:
-
您正在以 PID 1 的身份运行主管,这种方法将不起作用。您需要为 nginx 和 djnagoserver 使用单独的容器
-
@TarunLalwani 谢谢你。分离容器后终于可以工作了。
标签: django nginx docker-compose gunicorn supervisord