LoginSignup
14
6

More than 3 years have passed since last update.

1つのリポジトリに複数のDockerfileを置かなければならなくなったときのディレクトリ構成

Posted at

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の際に(カレントディレクトリを移動すれば)オプションも不要になり便利です。

まとめ

当たり前っちゃ当たり前なことですが、なぜ今のプロジェクトがこのディレクトリ構成にしているかの理由を後世に伝えるためのメモとして残しておきます。

14
6
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
6