学んだことメモ。
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 .
おわり
コメント