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

Docker构建镜像执行docker_build.sh报错exit code:2,如何解决?

解决Docker构建时执行docker_build.sh退出码2的问题

1. 查看脚本执行的详细日志

退出码2通常意味着脚本内某条命令执行失败,但默认Docker构建日志不会显示脚本内部的错误细节。可以修改Dockerfile中的RUN命令,开启bash调试模式:

RUN bash -x ./docker_build.sh

重新构建时,会输出脚本每一步的执行过程,直接定位出错的命令。

2. 检查脚本权限与路径

  • 确认docker_build.sh权限:COPY指令会保留主机文件权限,若主机上该脚本无执行权限,容器内虽可通过bash调用,但建议提前添加权限设置:
    RUN chmod +x ./docker_build.sh
    
  • 验证脚本内路径:容器当前工作目录是/gt_x86/x86,脚本中若引用上级目录(如../gcc、../llvm),需确保这些目录已通过COPY ./ /gt_x86复制到容器内(你的COPY指令逻辑是正确的)。

3. 手动进入容器调试

若日志仍不清晰,直接在容器内手动执行脚本:

  1. 修改Dockerfile,替换原RUN命令:
    CMD ["bash"]
    
  2. 构建调试镜像:
    docker build -t debug-image .
    
  3. 启动交互式容器:
    docker run -it debug-image
    
  4. 在容器内切换工作目录并执行脚本:
    cd /gt_x86/x86
    bash ./docker_build.sh
    

此时会直接看到脚本执行的具体错误,比如缺失依赖、命令不存在、文件找不到等。

4. 检查脚本依赖

查看docker_build.sh内容,确认它需要的工具(如gcc、python、make等)是否已在Dockerfile前序步骤中安装完成。若脚本依赖主机环境,而容器内未配置对应工具,会导致执行失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 11:40:10