Dockerfilesの命名方法がわかりません。 GitHubの多くは、ファイル拡張子なしでDockerfile
を使用します。それらに名前と拡張子を付けますか?もしそうなら何?または、それらをDockerfile
と呼ぶだけですか?
Hub.docker.comでオートビルダーを使用する場合は、dockerfileの名前を変更しないでください。 Dockerファイルに拡張子を使用せず、nullのままにします。ファイル名は次のようにする必要があります:(拡張子なし)
Dockerfile
ただし、以下のようにすることもできます...
dev.Dockerfile
、uat.Dockerfile
、prod.Dockerfile
など.
VS Codeでは<purpose>.Dockerfile
を使用でき、それに応じて機能します。
dev.Dockerfile
、test.Dockerfile
、build.Dockerfile
など.
VS Codeで<purpose>.Dockerfile
を使用すると、正しく認識されます。
コンテナごとにDockerfile(拡張子なし)を含むディレクトリが必要だと思います。例えば:
/db/Dockerfile
/web/Dockerfile
/api/Dockerfile
ディレクトリ名のみを使用してビルドすると、DockerはDockerfileを見つけます。例えば:
docker build -f ./db .
これは本当のように思えますが、個人的には、デザインが粗末なようです。確かに、デフォルトの名前(拡張子付き)を持ちますが、他の名前を許可し、コマンドのdockerファイルの名前を指定する方法があります。
拡張機能を使用すると、アプリケーションをその拡張機能タイプに関連付けることができるため、便利です。 MacOSXでDockerfileをクリックすると、Unix実行可能ファイルとして扱われ、実行が試行されます。
Dockerファイルに拡張子がある場合、OSに特定のアプリケーションで起動するように指示できます。テキストエディタアプリケーション。よくわかりませんが、現在の動作はファイルの許可に関連している可能性があります。
Hub.docker.comでオートビルダーを使用する場合は、あるはずですDockerfile
です。だからそこに:)
それらに名前と拡張子を付けますか?もしそうなら何?
Dockerfilesには好きな名前を付けることができます。デフォルトのファイル名はDockerfile
(拡張子なし)であり、デフォルトを使用すると、コンテナでの作業中にさまざまなタスクが簡単になります。
特定の要件に応じて、ファイル名を変更できます。たとえば、複数のアーキテクチャ向けに構築する場合、 resin.io チームがHAProxyコンテナに対して行った multi-container ARM例 :
Dockerfile.aarch64
Dockerfile.AMD64
Dockerfile.armhf
Dockerfile.armv7hf
Dockerfile.i386
Dockerfile.i386-nlp
Dockerfile.rpi
提供されている例では、各Dockerfileは異なるアーキテクチャ固有のアップストリームイメージからビルドされています。ビルドに使用する特定のDockerfileは、コマンドラインを使用してコンテナをビルドするときに --file, -f
オプション を使用して指定できます。
Dockerfile
は、1つのdockerファイル(ディレクトリごと)のみがある場合に適しています。同じディレクトリに複数のdockerファイルが必要な場合-正当な理由がある場合は、任意の標準を使用できます。最近のプロジェクトでは、環境が十分に異なっていたため、AWS Dockerファイルとローカル開発環境ファイルがありました。
Dockerfile
Dockerfile.aws
同じディレクトリに2つのDockerfileを作成しましたが、
# vi one.Dockerfile
# vi two.Dockerfile
両方のDockerfilesを使用するには、
# docker build . -f one.Dockerfile
# docker build . -f two.Dockerfile
注:現在の作業ディレクトリにいる必要があります。