Traffine I/O

日本語

2022-06-09

Docker Build コマンド

Docker Build コマンド

docker buildコマンドは、DockerfileとビルドコンテキストからDockerイメージを作成する開発者のツールの一つです。この記事では、コマンドの細部、各種オプション、効果的な使用方法について説明します。

基本構文

docker buildコマンドの基本構文は以下のとおりです。

bash
$ docker build [OPTIONS] PATH | URL | -

OPTIONSはオプションフラグで、PATHはDockerfileとビルドコンテキストが含まれるローカルディレクトリ、URLはDockerfileが含まれるリモートリポジトリ、-はビルドコンテキストがSTDIN経由で提供されることを示します。

ビルドコンテキストの指定

ビルドコンテキストはビルドプロセスの重要な部分であり、Dockerfileがその命令を実行するために必要なファイルとディレクトリで構成されています。デフォルトでは、ビルドコンテキストはdocker buildコマンドを実行するカレントディレクトリになります。別のビルドコンテキストを指定するには、パスを引数として指定します。

bash
$ docker build -t my-image:latest /path/to/build/context

イメージのタグ付け

-tまたは--tagフラグを使用して、イメージにわかりやすいタグを割り当てることができます。これはイメージの整理や管理に役立ちます。タグはリポジトリ名:タグ名の形式に従います。

bash
$ docker build -t my-image:latest .

ビルドキャッシュとレイヤーの再利用

Dockerは、ビルドプロセス中に中間レイヤーをキャッシュして、後続のビルドを最適化して高速化します。キャッシュミスを強制して全てのレイヤーをゼロから構築するには、--no-cacheフラグを使用します。

bash
$ docker build --no-cache -t my-image:latest .

ビルド引数

ビルド引数を使用すると、ビルド時にDockerfileに値を渡すことができます。--build-argフラグに引数と値を続けて指定します。

bash
$ docker build --build-arg API_KEY=myapikey -t my-image:latest .

マルチステージビルド

マルチステージビルドは、最終的なイメージに必要なファイルと依存関係だけを含めることで、Dockerイメージを最適化する方法です。マルチステージビルドを利用するには、--targetフラグにターゲットステージを続けて指定します。

bash
$ docker build --target production -t my-image:latest .

ビルドの失敗のデバッグ方法

ビルドが失敗した場合、原因を特定することは困難です。より詳細なビルドの進捗を表示するには、--progressフラグを使用します。

bash
$ docker build --progress=plain -t my-image:latest .

参考

https://docs.docker.com/engine/reference/commandline/build/

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!