前回の記事でDockerfileを利用したビルド方法を書きました。
この時は、Dockerfileという名前を決め打ちで使っておりました。
今回は、任意のDockerfile名を利用したビルド方法について記載致します。
■はじめに(前回のおさらい)
Dockerfileを利用したビルド書式は以下の通りです。
基本的なビルドするまでの流れは以下の通りでした。
作業用ディレクトリに移動
↓
Dockerfile作成(ファイル名もDockerfile)
↓
docker image buildコマンドを実行
■やりたいこと
下記二つを実現したいとします。
① DockerfileというDockerfile名ではなく、任意の名前のものを指定する方法
② 任意の場所にあるDockerfileを指定する方法
①、②の両方を満たすやりかたを下記しております。
■やってみる
今回は以下の内容にてビルドします。
Dockerfile名: testdockerfile
Dockerfileの格納先: Desktop直下のwork2フォルダ
タグ名: centos:centos8-build-which3
docker buildコマンド実行時のディレクトリ: C:\Users\test\Desktop
以下はビルド時のコマンドです。
※少し長いです。
docker image build -t centos:centos8-build-which3 -f C:\Users\test\Desktop\work2\testdockerfile C:\Users\test\Desktop\work2\
■今回のポイント
ポイントは以下の通りです。
① -fオプションを利用する。
② -fオプションの引数には"Dockerfileフルパス/任意のDockerfile名"を記載する。
こちらについて少し補足しますと、書式は以下になります。
-f "Dockerfileのフルパス+Dockerfile名" "コンテキストの場所"
-fオプションを利用しないときは(=ドットのみを指定した際は)、
「カレントディレクトリ内のDockerfileを利用する」+「カレントディレクトリをコンテキストの場所とする」ということを表現していることになります。
-f オプションを付ける際には、ドットが補っていた「Dockerfileの場所」と「コンテキストの場所」を明示的に指定する必要があるため、前述のようなコマンド形式になります。
尚、以下のコマンドでもコンテキストの場所が異なるだけのため、イメージ作成は可能です。
docker image build -t centos:which -f C:\Users\test\Desktop\work2\testdockerfile .
■まとめ
ビルドする際には、「Dockerfileの場所」と「コンテキストの場所」を指定する必要があります。
以上です。