web-dev-qa-db-ja.com

複数のdockerfileから複数のイメージを構築する

2つの異なるdockerfileを管理して複数のイメージを構築する方法はありますか?私の場合、ビルドコンテキスト内にDockerfile_app1Dockerfile_app2を想定して2つのdockerfileを保持したいと思います。

docker build -t <image_name> .

上記は、Dockerfileという名前のdockerfileを選択します

docker build -t <image_name> Dockerfile_app1

ファイル名がDockerfile.であると想定しているため、これも私の場合は機能しません。

Docker-composebuildでも試してみました。しかし、それは機能しません。

app1:
  build: Dockerfile_app1
  ports:
   - "80:80"
app2:
  build: Dockerfile_app2
  ports:
   - "80:80"
11
Mahattam

-fdocker build引数を使用して、使用するDockerfileの名前を指定するだけです。

$ docker build -t <image_name> -f Dockerfile_app1 .
...

または、作成では、バージョン1.3以降のdockerfileキーを使用できます。

app1:
  build: .
  dockerfile: Dockerfile_app1
  ports:
   - "80:80"
app2:
  build: .
  dockerfile: Dockerfile_app2
  ports:
   - "80:80"

buildキーは、Dockerfileの名前ではなく、ビルドコンテキスト用であることに注意してください(したがって、この場合はDockerfile_app1というディレクトリを検索しました)。

24
Adrian Mouat