はじめに
Docker社から以下のDockerfileでヒアドキュメントが書けるようになった旨のアナウンスがありました。
これまで
これまで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