docker buildコマンドとは?ビルドコンテキストとは

学んだことメモ。

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 .

 

 

おわり

仮想環境
スポンサーリンク
この記事を書いた人
penpen

1991生まれ。WEBエンジニア。

技術スタック:TypeScript/Next.js/Express/Docker/AWS

フォローする
フォローする

コメント

タイトルとURLをコピーしました