Dockerfileでヒアドキュメントが書けるようになった

はじめに

Docker社から以下のDockerfileでヒアドキュメントが書けるようになった旨のアナウンスがありました。

www.docker.com

これまで

これまでDockerfileでは以下のような書き方をしていました。

FROM ubuntu:20.04

RUN apt-get update && \
    apt-get -y upgrade && \
    apt-get -y install vim
EOF

RUN1行で収めるために && \ でコマンドを繋げる書き方をしていました。

これから

Dockerビルド時にBuildKitを有効にすることで、Dockerfileにヒアドキュメントを書くことが出来るようになったので以下のような記述が可能になりました。

# syntax=docker/dockerfile:1.3-labs

FROM ubuntu:20.04

RUN <<EOF
apt-get update
apt-get -y upgrade
apt-get -y install vim
EOF

これですっきり書けるようになりました。

BuildKit

今回Dockerビルド環境はMacOSのDocker Desktopで試しました。

Docker Desktop for Macバージョン3.2.0からBuildKitがデフォルトで有効状態になるようになっていました。 なので特に設定変更なくビルドが可能でした。

わざとBuildKitを無効化してビルドしてみると以下のようにエラーとなりました。

$ DOCKER_BUILDKIT=0 docker build -t tsunokawa/docker-buildkit-test .
Sending build context to Docker daemon  2.048kB
Error response from daemon: dockerfile parse error line 5: unknown instruction: APT-GET