Dockerfile : 实现多行Shell的语法, 告别 && 链接符

大家好, 我是 老麦, 一个运维老兵, 现在专注于 Golang,DevOps,云原生基础设施建设。

Dockerfile : 实现多行Shell语法, 告别 && 链接符

图片图片

建议点击 查看原文 查看最新内容。

原文链接: https://typonotes.com/posts/2023/09/01/dockerfile-buildkit-here-syntax/

今天在看 docker 文档的时候, 发现了一个新语法 Dockerfile - here documents 语法[1], 即 多行语法。在 Dockerfile 1.4 中添加。

如果你知道 cat 的 here document 语法, 就会很好理解。

cat > demo.txt  asdb
> EOF

该语法在使用时有一些限制条件

  • 该语法只支持在 RUN 和 COPY 下使用。
  • 需要通过 buildkit 解析语法。简单的说, 就是 docker buildx build 构建镜像
  • Here-Doc 语法介绍

    这是一个特性语法, 必须在 Dockerfile 申明 # syntax=docker/dockerfile:1 , 否则即使使用 buildkit 也无法解析。

    # syntax=docker/dockerfile:1
    
    其他

    1. RUN

    # syntax=docker/dockerfile:1
    FROM debian
    RUN