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

编译Dockerfile时出现“Illegal option”错误该如何解决?

Docker构建调用download.sh报错的修复方案

错误根因

你遇到的/bin/sh: illegal option -报错核心原因有两类:

  1. Alpine系统默认使用ash作为默认shell,而你使用的download.sh是针对bash编写的脚本,两种shell的语法解析规则存在差异,直接执行时ash无法正确解析脚本内容。
  2. 如果你是在Windows环境下保存的download.sh文件,脚本换行符会被自动转换为CRLF格式,Linux下的shell解析时会把换行符前的\r识别为非法字符,触发报错。

修复方案

  • 最简修改方案:直接修改Dockerfile中调用脚本的指令,显式指定用bash执行即可,你已经在builder阶段安装了bash依赖,无需额外安装其他包:
    把原Dockerfile中的
    RUN /tmp/download.sh
    
    替换为
    RUN bash /tmp/download.sh
    
  • 如果是Windows环境下存储的脚本,需要先将download.sh的换行符格式从CRLF修改为Linux标准的LF格式,再执行构建,主流代码编辑器都支持直接切换换行符格式。
  • 可选补充:如果修改后仍有权限类报错,可以在COPY脚本的指令后增加一行赋权操作:
    RUN chmod +x /tmp/*.sh
    

验证

修改完成后重新执行构建命令即可正常执行脚本下载依赖:

docker build . -t servicecamundadocker/latest

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:30:05