首页/云/Docker 容器速查/Dockerfile heredoc 多行写法
本包目录(366 条)
基础命令50 条
镜像与构建107 条
网络与存储52 条Compose 编排55 条资源与安全50 条容器排障52 条

Dockerfile heredoc 多行写法

dockerfile 1.4+ 支持 heredoc:RUN <<EOF 内嵌多行脚本、COPY <<EOF 直接写配置文件,告别反斜杠续行。

Docker 容器速查云更新于 2026-10-12
用途内嵌多行脚本/文件内容
语法RUN <<EOF ... EOF / COPY <<EOF /目标 <<EOF ...
依赖首行 # syntax=docker/dockerfile:1

示例

示例
RUN <<EOF
set -eux
apt-get update
apt-get install -y --no-install-recommends curl
rm -rf /var/lib/apt/lists/*
EOF

COPY <<EOF /app/config.yaml
server:
  port: 8080
  host: 0.0.0.0
EOF
heredoc 内容作为整体执行/写入,不需要转义反斜杠,复杂脚本可读性明显提升。

易错点

  • 没有 # syntax 声明或前端版本过旧时,heredoc 会被当作普通命令解析,报错信息很不直观
  • 结束符必须顶格且单独一行,行内多余空格会导致『未结束』

数据来源与参考

  • Docker 官方文档:Dockerfile here-documents(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌