docker build with --build-arg с несколькими аргументами
по словам документация, можно определить несколько аргументов за флаг --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"
есть идеи, как я могу определить несколько аргументов?
3 ответа:
использовать
--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 .
приведенный выше ответ pl_rock является правильным, единственное, что я хотел бы добавить, это ожидать ARG внутри Dockerfile, если вы не будете иметь к нему доступа. Так что если вы делаете
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
я столкнулся с этой проблемой, поэтому я надеюсь, что помогу кому-то (себе) в будущем.
Это позор, что нам нужно несколько ARG тоже, это приводит к нескольким слоям и замедляет сборку из-за этого, и для тех, кто также интересно, что, в настоящее время нет возможности для установки нескольких аргументов.