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

运行docker-compose报exited with code 243错误 附Dockerfile求解决方案

Docker 容器异常退出报 exited with code 243 修复方案

Exit code 243 遵循Linux标准退出码规则,计算方式为128 + 15,代表容器内主进程收到SIGTERM终止信号后退出,结合你给出的Dockerfile配置,问题点和修复方式如下:

  • 启动命令写法错误
    你当前配置的CMD npm run start --prefix ./存在两个问题:一是已经通过WORKDIR /app指定了工作目录,--prefix ./属于冗余参数,部分npm版本下会因为路径解析异常找不到start脚本;二是shell格式的CMD会让npm进程作为sh的子进程运行,无法正确接收Docker传递的信号,极易触发异常退出。
    修正为exec格式启动命令:
    CMD ["npm", "run", "start"]
    
  • Dockerfile缺失核心构建步骤
    现有配置只复制了env目录下的环境变量文件,既没有复制package.json等依赖描述文件、业务代码,也没有执行依赖安装命令,容器启动时npm根本找不到对应的启动脚本和依赖包,直接触发进程退出。
    补全后的完整Dockerfile参考:
    FROM node:16
    ARG stage
    RUN mkdir -p /app
    WORKDIR /app
    # 优先复制依赖文件,复用Docker构建缓存
    COPY package*.json ./
    # 安装生产环境依赖,根据你的项目实际需求调整安装参数
    RUN npm ci --only=production
    # 复制环境变量文件
    COPY ./env/${stage}.env .
    COPY ./env/test.env .
    # 复制剩余业务代码
    COPY . .
    EXPOSE 3000
    
    CMD ["npm", "run", "start"]
    
  • ARG参数未正确传递
    Dockerfile中声明的ARG stage属于构建期参数,如果在docker-compose配置中没有传入对应参数值,构建阶段执行COPY ./env/${stage}.env .时会因为找不到对应文件报错,部分Docker版本下该错误不会中断构建,会导致容器启动时缺少必要环境变量,服务启动失败退出。
    需要在docker-compose.yml的build配置中补全参数传递:
    services:
      your-node-service:
        build:
          context: .
          args:
            stage: prod # 替换为你实际部署的环境标识
    
  • 残留问题排查方式
    如果以上配置调整后仍然出现243退出码,直接执行docker logs <你的容器ID>查看Node进程输出的具体错误日志,243仅为信号类退出码,代码语法错误、端口占用、环境变量缺失等业务层错误都会触发该退出码,具体根因以容器日志输出为准。

内容的提问来源于stack exchange,提问作者Maksic

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 07:24:24