1つのリポジトリで1つのDockerfileなことが多いと思うので、だいたいルートディレクトリにDockefileを置くことになると思いますが、2つ以上のDockerfileを起きたくなる場合もあるでしょう。そんな場合にどういうディレクトリ構成にして、どういうファイル名にするか悩んだこと(そして失敗したこと)があるので書いておきます。
失敗パターン: Dockerfileという名前ではなく、別の名前でDockerfileを配置した
例えばrailsを動かすDockerfileと、nginxを動かすDockerfileがあった場合に、それぞれDockerfile.railsとDockerfile.nginxとするようなイメージ。
dockerfiles
├── Dockerfile.rails
├── Dockerfile.nginx
dockerのbuildを行う際に、オプションを指定することで特定のDockerfileを指定できるので、この方法でも大きな問題はありません。
しかしこのDockerfileを再びいじるようになって気づいたのですが、そのままだとエディタのシンタックスハイライトが効かないということに気づきました。
成功かもしれないパターン: ディレクトリを切ってDockerfileを配置する
docker
├── rails
│ └── Dockerfile
└── nginx
└── Dockerfile
こんな感じ。
これだとシンタックスハイライトが効きますし、docker buildの際に(カレントディレクトリを移動すれば)オプションも不要になり便利です。
まとめ
当たり前っちゃ当たり前なことですが、なぜ今のプロジェクトがこのディレクトリ構成にしているかの理由を後世に伝えるためのメモとして残しておきます。