Сборка докеров с помощью --build-arg с несколькими аргументами
Согласно документации на
http://docs-stage.docker.com/v1.10/engine/reference/commandline/build/, можно определить несколько аргументов для флага --build-arg
, но я не могу узнать, как это сделать. Я попробовал следующее:
docker build -t essearch/ess-elasticsearch:1.7.6 --build-arg number_of_shards=5 number_of_replicas=2 --no-cache .
= > Это возвращает ошибку.
Я также пробовал:
docker build -t essearch/ess-elasticsearch:1.7.6 --build-arg number_of_shards=5,number_of_replicas=2 --no-cache .
= > Это устанавливает одну переменную, number_of_shards
, в значение "5, number_of_replicas = 2"
Любая идея, как я могу определить несколько аргументов?
Ответы
Ответ 1
Используйте --build-arg
с каждым аргументом.
Если вы передаете два аргумента, добавьте --build-arg
с каждым аргументом, например:
docker build -t essearch/ess-elasticsearch:1.7.6 --build-arg number_of_shards=5 --build-arg number_of_replicas=2 --no-cache .
Ответ 2
Вышеприведенный ответ pl_rock верен, единственное, что я хотел бы добавить, - это ожидать ARG внутри файла Docker, если у вас не будет доступа к нему. Итак, если вы делаете
docker build -t essearch/ess-elasticsearch:1.7.6 --build-arg number_of_shards=5 --build-arg number_of_replicas=2 --no-cache .
Затем внутри Dockerfile вы должны добавить
ARG number_of_replicas
ARG number_of_shards
Я столкнулся с этой проблемой, поэтому надеюсь, что помогу кому-то (мне) в будущем.
Ответ 3
Поразительно, что нам также нужно несколько ARG, это приводит к нескольким слоям и замедляет сборку из-за этого, а также для кого-то также интересно, что в настоящее время нет способа установить несколько ARG.