web-dev-qa-db-ja.com

Dockerfilesの命名方法

Dockerfilesの命名方法がわかりません。 GitHubの多くは、ファイル拡張子なしでDockerfileを使用します。それらに名前と拡張子を付けますか?もしそうなら何?または、それらをDockerfileと呼ぶだけですか?

88

Hub.docker.comでオートビルダーを使用する場合は、dockerfileの名前を変更しないでください。 Dockerファイルに拡張子を使用せず、nullのままにします。ファイル名は次のようにする必要があります:(拡張子なし)

Dockerfile

ただし、以下のようにすることもできます...

dev.Dockerfileuat.Dockerfileprod.Dockerfileなど.

VS Codeでは<purpose>.Dockerfileを使用でき、それに応じて機能します。

98
tk_

dev.Dockerfiletest.Dockerfilebuild.Dockerfileなど.

VS Codeで<purpose>.Dockerfileを使用すると、正しく認識されます。

36
Sahil Ahuja

コンテナごとにDockerfile(拡張子なし)を含むディレクトリが必要だと思います。例えば:

  /db/Dockerfile
  /web/Dockerfile
  /api/Dockerfile

ディレクトリ名のみを使用してビルドすると、DockerはDockerfileを見つけます。例えば:

docker build -f ./db .
24
garryp

これは本当のように思えますが、個人的には、デザインが粗末なようです。確かに、デフォルトの名前(拡張子付き)を持ちますが、他の名前を許可し、コマンドのdockerファイルの名前を指定する方法があります。

拡張機能を使用すると、アプリケーションをその拡張機能タイプに関連付けることができるため、便利です。 MacOSXでDockerfileをクリックすると、Unix実行可能ファイルとして扱われ、実行が試行されます。

Dockerファイルに拡張子がある場合、OSに特定のアプリケーションで起動するように指示できます。テキストエディタアプリケーション。よくわかりませんが、現在の動作はファイルの許可に関連している可能性があります。

15
Ashley Aitken

Hub.docker.comでオートビルダーを使用する場合は、あるはずですDockerfileです。だからそこに:)

15

それらに名前と拡張子を付けますか?もしそうなら何?

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オプション を使用して指定できます。

8
Josh Habdas

Dockerfileは、1つのdockerファイル(ディレクトリごと)のみがある場合に適しています。同じディレクトリに複数のdockerファイルが必要な場合-正当な理由がある場合は、任意の標準を使用できます。最近のプロジェクトでは、環境が十分に異なっていたため、AWS Dockerファイルとローカル開発環境ファイルがありました。

DockerfileDockerfile.aws

3
ktamlyn

同じディレクトリに2つのDockerfileを作成しましたが、

# vi one.Dockerfile
# vi two.Dockerfile

両方のDockerfilesを使用するには、

# docker build . -f one.Dockerfile
# docker build . -f two.Dockerfile

注:現在の作業ディレクトリにいる必要があります。

3