学んだことメモ。
docker buildコマンドとは?
docker buildコマンドは、DockerfileからImageを作成するためのコマンド。
基本は以下の形式で書きます。
docker build -t imagename .
-t imagename:- 作成するイメージの名前を指定する。
imagenameの部分は任意の文字列。
.:- ビルドコンテキストを指定する。
- ビルドコンテキストというのは、dockerに「ここにあるファイルを全部読み込んでくれ!」を指定するもの。
- 例えば、
.と指定すると、カレントディレクトリにあるファイルすべてがdockerデーモンに送信される。 - ただし、送信されるからと言って、イメージに組み込まれるわけではない。例えば、カレントディレクトリに1GBの動画ファイルを置いておくと、dockerはそれを読み込むが、ADDやCOPY命令をしない限り、イメージに動画ファイルが組み込まれることはないので、1GBの動画ファイルを読み込むのに使った時間はムダになる。
- なので、ビルドコンテキストには不要なファイルは置くべきでない。buildするのにムダに時間がかかってしまうため。
Dockerfileの指定
- ・
-fオプションを指定すると、使用するDockerfileを指定できます - ・
-fオプションを省略すると、ビルドコンテキスト内にDockerfileがあるものとして処理されます
例えばビルドコンテキストを.と指定すると、カレントディレクトリにDockerfileがあるものとして処理されます。
つまり、-fオプションを使うと、ビルドコンテキストとDockerfileの場所を別々に指定できます。
キャッシュを使わない
例えば
RUN apt-get -y update
のようなコマンドの場合、コマンドは毎回同じでも結果は毎回違う可能性があります。
ただ、デフォルト設定だと「前回実行した結果(キャッシュ)が残っていればそれを参照する」という設定になっているので、毎回古いバージョンにしかupdateされないことになってしまいます。
そんなとき、--no-cacheオプションを付けると「キャッシュを使わずに毎回すべてビルドする」という設定になります。
docker build --no-cache -t imagename .
おわり
コメント