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生まれ。
2019年くらいからフロントエンドエンジニアを目指している元アフィリエイターです💩

職を探しています😭
よろしくお願いします🙇

penpenをフォローする
penpenをフォローする
penpenメモ

コメント

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