manage.py不登录到树莓Pi上Docker中的stdout/stderr

2024-05-15 04:34:21 发布

您现在位置:Python中文网/ 问答频道 /正文

在Raspberry Pi 2上,我使用图像resin/rpi-raspbian:stretch来运行Django应用程序。在Dockerfile中,我安装了python3包,并使用ENTRYPOINT python3 manage.py runserver 0:8000启动应用程序。这是可行的,但是当我的代码抛出错误时,我使用docker log命令没有输出。

示例

我很害怕。当我使用docker exec手动运行该命令时,我得到了预期的异常:

pi@pi2:/etc/docker/container/pms $ sudo docker exec -it pms_app_1 python3 manage.py runserver 0:8000
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x75de3228>
[...]
ImportError: No module named 'ws4redisfrontend'

但是当我使用docker-compose运行容器,然后打开日志时,它们是空的:

pi@pi2:/myapp $ sudo docker logs myapp_1
pi@pi2:/myapp $ 

此行为仅存在于manage.py调用。例如,当我像这样扩展入口点时:

ENTRYPOINT python3 -c "print('printed by python inline script')" && python3 manage.py runserver 0:8000

我在容器日志中看到由python内联脚本打印的。作为Python/Django的新手,我不明白为什么会发生这种情况。但是,正如我的打印示例所起的作用,它似乎是一个Django问题,而不是Python的一般问题。我错过了什么?调试模式在settings.py中激活。


Tags: djangodockerpy命令应用程序示例managepi

热门问题