• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

python - manage.py 不会在 Raspberry Pi 上的 Docker 中登录到 stdout/stderr

[复制链接]
菜鸟教程小白 发表于 2022-8-3 10:10:38 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

在 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 的一般问题。我错过了什么? Debug模式在 settings.py 中激活.



Best Answer-推荐答案


docker logs 默认情况下显示 I/O 流 STDOUT 和 STDERR。检查是否
Django logging在您的 settings.py已正确配置。
例如:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler'
        },
    },
    'loggers': {
        '': {  # 'catch all' loggers by referencing it with the empty string
            'handlers': ['console'],
            'level': 'DEBUG',
        },
    },
}
Source
另外值得一提的是:

Changed in Django 1.10:

In older versions, log messages were written to sys.stderr instead of being handled through Python logging.


https://docs.djangoproject.com/en/1.11/ref/django-admin/#runserver

关于python - manage.py 不会在 Raspberry Pi 上的 Docker 中登录到 stdout/stderr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46776596/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap