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

docker-compose的web服务退出码为0如何保持服务持续运行不退出

问题根因

容器退出返回状态码0代表主进程执行完成后正常退出,没有运行时错误,你遇到的问题核心是web服务对应的主进程没有作为常驻进程持续运行,执行完逻辑就直接结束了。

排查&修复步骤
  • 检查webapp.py的服务启动逻辑
    这是最常见的诱因,确保你的web应用代码末尾包含常驻监听的启动逻辑,以Flask框架为例:
    if __name__ == '__main__':
        # 必须指定host为0.0.0.0才能允许宿主机访问,必须调用run方法启动常驻监听进程
        app.run(host='0.0.0.0', port=5000, debug=True)
    
    如果是其他web框架,确认启动逻辑没有配置为一次性任务(比如仅做数据初始化、打印日志后就结束)。
  • 修正Dockerfile语法问题
    你提供的Dockerfile中安装依赖的命令存在语法错误,install和-r之间缺少空格,正确写法为:
    RUN pip install -r requirements.txt
    
    如果本地文件确实存在该问题,修正后执行docker compose build --no-cache重新构建镜像再启动。
  • 临时保留容器方便调试
    可以在docker-compose.yml的web服务配置中添加以下参数,避免容器直接退出,方便进入容器排查问题:
    web:
      build: .
      ports:
        - "5000:5000"
      tty: true
      stdin_open: true
    
    启动后执行docker compose exec web sh进入容器,手动运行python webapp.py查看输出,确认服务启动逻辑是否正常。

内容的提问来源于stack exchange,提问作者JHOAM SEBASTIAN MOLINA GARCIA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:36:04