You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker构建的Django镜像本地Ubuntu可运行 Linux服务器无报错退出如何解决

问题排查及解决步骤
  • 第一步:先确认容器退出状态和报错日志
    先执行docker ps -a找到刚才退出的容器ID,查看退出状态码:
    • 若退出码为137:代表进程被系统OOM(内存不足)杀掉,你的项目是验证码识别类服务,启动时需要加载模型文件,可先给服务器扩容内存,或者优化模型加载逻辑降低内存占用。同时可执行dmesg | grep -i oom确认系统OOM日志。
    • 若退出码为其他值:执行docker logs <你的容器ID>查看容器运行时的完整输出,定位具体报错点。
  • 第二步:补全系统依赖和项目初始化流程
    你的Dockerfile只安装了基础的Python依赖,若项目用到图像识别、模型推理相关的库(比如OpenCV、TensorFlow),需要额外安装系统依赖,修改Dockerfile的apt安装部分:
    RUN apt-get update \
        && apt-get install -y python3-pip python3-dev libgl1-mesa-glx libglib2.0-0 libsm6 libxext6 libxrender-dev\
        && cd /usr/local/bin \
        && ln -s /usr/bin/python3 python \
        && pip3 install --upgrade pip
    
    同时在启动runserver前先执行项目检查和数据库初始化,你可以修改启动命令为:
    CMD ["sh", "-c", "python manage.py check && python manage.py migrate && python manage.py runserver 0.0.0.0:8000 --verbosity 3"]
    
    加--verbosity 3可以输出更详细的启动日志,方便定位卡死的具体环节。
  • 第三步:排查项目配置差异
    因为简单Django项目可以在服务器正常运行,说明Docker本身环境没问题,问题出在你的项目独有配置:
    1. 检查是否有启动时就加载的外部资源连接(比如Redis、远程数据库、对象存储),服务器是否能正常访问这些资源,连接超时会直接导致进程退出。
    2. 检查.dockerignore文件是否忽略了项目必要的文件(比如模型权重文件、sqlite数据库文件、本地配置文件),导致构建出的镜像缺少必要文件无法启动。
    3. 若服务器CPU架构和本地不同(比如本地是x86,服务器是ARM),需要对应安装适配架构的Python依赖包,避免二进制兼容问题导致进程崩溃无输出。

内容的提问来源于stack exchange,提问作者lam vu Nguyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 11:36:03