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

使用Dockerfile Here Document报错:/bin/sh: 1: set: Illegal option -

解决Docker Here Document执行报错的方案

错误原因

报错/bin/sh: 1: set: Illegal option -是因为Ubuntu镜像默认shell为dash,当Here Document中的命令带有前导空格时,dash解析出现异常;另外dash与bash的set选项兼容细节存在差异,也可能触发这类错误。

可行解决方案

1. 移除Here Document内容的前导空格

直接去掉set -eux前面的空格,确保命令被shell正确解析:

# syntax=docker/dockerfile:1.3-labs

FROM ubuntu:focal

RUN <<EOF
set -eux
EOF

2. 显式指定使用bash执行

强制用bash替代默认的dash,bash对命令格式的兼容性更好:

# syntax=docker/dockerfile:1.3-labs

FROM ubuntu:focal

RUN bash <<EOF
    set -eux
EOF

3. 使用<<-EOF并改用tab缩进

<<-EOF会自动忽略内容前的tab字符(注意必须是tab,不能是空格),既保留代码缩进美观,又不会传递多余空格给shell:

# syntax=docker/dockerfile:1.3-labs

FROM ubuntu:focal

RUN <<-EOF
	set -eux
EOF

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:10:27