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

Dockerfile中使用sudo多行here-doc写入apt配置失败求助

解决Dockerfile中使用tee+Heredoc添加APT配置的问题

在Ubuntu 20.04环境下,要通过Dockerfile向/etc/apt/apt.conf.d/80ssl-exceptions添加指定APT配置,之前的错误写法因破坏Heredoc语法导致报错,正确写法如下:

RUN sudo tee -a /etc/apt/apt.conf.d/80ssl-exceptions > /dev/null <<'EOF'
Acquire::https::local_repo.local_host.com::Verify-Peer "false";
EOF

错误原因说明

之前的写法在Heredoc内容和结束标记EOF前加了反斜杠转义换行,这会让/bin/sh无法识别EOF作为Heredoc的结束标记,反而将其视为普通命令,因此抛出/bin/sh: 1: EOF: not found错误。Heredoc的结束标记必须单独占据一行,前后不能有多余的转义字符或空格(除非使用带缩进的Heredoc,此处无需)。

注意事项

  • Dockerfile中RUN指令默认使用/bin/sh而非Bash,需严格遵循POSIX Shell的Heredoc语法
  • 确保EOF单独成一行,无需任何转义或前缀字符

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 20:51:20