当前位置:首页 >探索 >Dockerfile : 实现多行Shell的语法, 告别 && 链接符 Dockerfile : 实现多行Shell的语法

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

2024-06-30 18:17:14 [百科] 来源:避面尹邢网

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

作者:老麦 开发 前端 今天在看 docker 文档的实现时候, 发现了一个新语法 Dockerfile - here documents 语法[1],多行 即 多行语法。在 Dockerfile 1.4 中添加。语法

大家好,告别 我是链接 老麦, 一个运维老兵, 现在专注于 Golang,实现DevOps,多行云原生基础设施建设。语法

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

图片图片

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

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

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

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

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

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

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

cat > demo.txt <<EOF> 123> asdb> EOF

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

  1. 该语法只支持在 RUN 和 COPY 下使用。
  2. 需要通过 buildkit 解析语法。简单的说, 就是 docker buildx build 构建镜像

Here-Doc 语法介绍

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

# syntax=docker/dockerfile:1其他

1. RUN

# syntax=docker/dockerfile:1FROM debianRUN <<EOT bash  set -ex  apt-get update  apt-get install -y vimEOT

注意:EOT 只是一个标识符, 可以换成其他任意的符号, 只要 成对 即可。例如 PANDA

2. COPY

# syntax=docker/dockerfile:1FROM alpineCOPY <<-"EOT" /app/script.sh echo hello ${ FOO}EOTRUN FOO=abc ash /app/script.sh

注意:这里使用的是符号 <<-

使用 buildx 执行

还是很简单的, 直接使用 docker buildx build 就行了

例如:

docker buildx build \    -t example.com/debian:here \    -f here.Dockerfile \    .

图片图片

责任编辑:武晓燕 来源: 熊猫云原生Go docker语法Dockerfile

(责任编辑:知识)

    推荐文章
    热点阅读