0
0

More than 1 year has passed since last update.

Dockerfile作成時、キャッシュをうまく使う

Posted at

はじめに

本記事では、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の書き方と使い方

明日も頑張ります!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0