Создать несколько образов с разных файла Docker

есть ли способ построить несколько изображений, управляя двумя разными dockerfiles? В моем случае я хочу сохранить два dockerfile предположим Dockerfile_app1 Dockerfile_app2 в контексте сборки.

docker build -t <image_name> .

выше будет выбрать dockerfile с именем Dockerfile

docker build -t <image_name> Dockerfile_app1

Это также не работает для моего случая, поскольку он ожидает имя файла как Dockerfile.

Я также пробовал сборку docker-compose. Однако это DIN не работает.

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

1 ответов


просто использовать до docker build чтобы указать имя файла Dockerfile для использования:

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

или в Compose вы можете использовать dockerfile ключ от версии 1.3 и далее:

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

отметим, что build ключ предназначен для контекста сборки, а не для имени файла Dockerfile (поэтому он искал каталог с именем Dockerfile_app1 в вашем случае).