はじめに
本記事では、Dockerfile作成時にキャッシュをうまく使う方法をアウトプットします。
Dockerマスターになりたいので、誤りがあればご指導ください。(他力本願かて)
Dockerfileについては、以下も参照ください。
準備
FROM ubuntu:latest
RUN apt-get update
RUN apt-get install <パッケージ>
CMD ["bin/bash"]
とします。
FROMで、ベースになるimageを決定します。
今回は、ubuntuにします。
その後、Ubuntuでは、apt-getというコマンドでパッケージ管理します。
-
RUN apt-get updateでは、新しいパッケージリストを取得できます。 -
RUN apt-get install <パッケージ>で、パッケージをインストールできます。
キャッシュを利用する
RUN やりたいことをどんどん記述してしまうと、
その分layerが積まれていっぱいになります。
buildをする毎に、処理に時間がかかってしまいます。
つまり、まとめてRUNすれば、省エネすることができます。
FROM ubuntu:latest
RUN apt-get update
RUN apt-get install -y <パッケージ>
CMD ["bin/bash"]
これは、
FROM ubuntu:latest
RUN apt-get update && apt-get install -y <パッケージ>
CMD ["bin/bash"]
で、書くことができます。
パッケージは1つとは限らないので、\(バックスラッシュ)を使って、
より見やすく書くことができます。
FROM ubuntu:latest
RUN apt-get update && apt-get install -y \
<パッケージ1> \
<パッケージ2> \
<パッケージ3>
CMD ["bin/bash"]
と書くことができます。
RUNの内容の変更点がなければ、
docker build .をしても、キャッシュを使って処理を早く終了することができます。
つまり、パッケージをインストールして、うまくいったものについては、
<パッケージ> \と、どんどん追加していくことが良いと考えられます。
RUN apt-get update && apt-get install -y \
<パッケージ1> \
<パッケージ2> \
<パッケージ3>
RUN apt-get install -y <パッケージ4>
<パッケージ4>が問題なければ、
RUN apt-get update && apt-get install -y \
<パッケージ1> \
<パッケージ2> \
<パッケージ3> \
<パッケージ4>
と付け足していく。
これを繰り返し、
完成品ができれば、
締めくくりとして、RUNをひとまとめにして、「build」します。
パッケージについては、
私的に、さらに分かりやすい方が良いと思ったので、アルファベット順でも良いのかなと思います。
以上です。
終わりに
何事においてもデータ容量は、小さい方が良いと思います。
今回のように、キャッシュをうまく使い、省エネをしていきたいです。
私のような初学者の方々は、
Dockerを使いまくってデータ容量がすごいことになっていると、
よく耳にします。
何においても、プログラミングは可読性は大事なのですね。
以下今回の参考サイトです。
Dockerfile に apt, apt-get, source コマンドを書く時のTips
Dockerfile のベストプラクティス
Dockerfileの書き方と使い方
明日も頑張ります!