大家好,告别 我是链接 老麦, 一个运维老兵, 现在专注于 Golang,实现DevOps,多行云原生基础设施建设。语法
图片
建议点击 查看原文 查看最新内容。链接
原文链接: 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 <<EOF> 123> asdb> EOF
该语法在使用时有一些限制条件
这是一个特性语法, 必须在 Dockerfile 申明 # syntax=docker/dockerfile:1 , 否则即使使用 buildkit 也无法解析。
# syntax=docker/dockerfile:1其他
# syntax=docker/dockerfile:1FROM debianRUN <<EOT bash set -ex apt-get update apt-get install -y vimEOT
注意:EOT 只是一个标识符, 可以换成其他任意的符号, 只要 成对 即可。例如 PANDA
# syntax=docker/dockerfile:1FROM alpineCOPY <<-"EOT" /app/script.sh echo hello ${ FOO}EOTRUN FOO=abc ash /app/script.sh
注意:这里使用的是符号 <<-
还是很简单的, 直接使用 docker buildx build 就行了
例如:
docker buildx build \ -t example.com/debian:here \ -f here.Dockerfile \ .
图片
(责任编辑:知识)
男子利用汽车干扰器"高级"盗窃 莱山公安抓获归案 什么是干扰器