Dockerでヒアドキュメントが使えるようになるみたいです。
DockerfileでのRUN
コマンドの記述が楽になりそうです。
RUN apt-get update && \ apt-get upgrade -y && \ apt-get install -y ...
参考サイト www.docker.com
ヒアドキュメントの機能を利用するには、環境変数 DOCKER_BUILDKIT=1
にする必要があります。
buildコマンドで利用するイメージを変更するために、Dockerfileの冒頭に# syntax=docker/dockerfile:1.3-labs
を追加します。
ヒアドキュメントが使用できるコマンドはRUN
とCOPY
になります。
RUNコマンドでヒアドキュメントを使う
上のRUNコマンドをヒアドキュメント化するには以下のように記述します。
# syntax=docker/dockerfile:1.3-labs FROM ubuntu:20.04 RUN <<EOF apt-get update apt-get upgrade -y apt-get install -y ... EOF
ヒアドキュメントを使うことで、RUN
コマンドでの&& \
の数珠つなぎから開放されDockerfileの可読性が上がりそうですね。
COPYコマンドでヒアドキュメントを使う
# syntax = docker/dockerfile:1.3-labs FROM alpine COPY <<-"EOF" /app/script.sh echo hello ${FOO} EOF RUN FOO=abc ash /app/script.sh >> /hello
ヒアドキュメントの内容で
/app/script.sh
を作成します。(EOFをダブルクオート囲っているので環境変数は展開されない)次の
RUN
コマンドで/app/script.sh
を実行します。(/hello
にhello abc
が記述される)
私には利用用途があまり思い浮かびませんが、マルチステージビルドで複雑なbuild
をするときに使うときが来るかもしれません。
短いですが以上です。
インゲージではエンジニアを募集しいています。 ご応募お待ちしてます。
↓↓↓↓↓↓↓↓↓↓↓↓↓