Zgodnie z dokumentacją możliwe jest zdefiniowanie wielu argumentów dla flagi --build-arg
, ale nie mogę się dowiedzieć, jak to zrobić. Próbowałem następujące:
docker build -t essearch/ess-elasticsearch:1.7.6 --build-arg number_of_shards=5 number_of_replicas=2 --no-cache .
=> Zwraca błąd.
Próbowałem także:
docker build -t essearch/ess-elasticsearch:1.7.6 --build-arg number_of_shards=5,number_of_replicas=2 --no-cache .
=> Ustawia jedną zmienną number_of_shards
na wartość „5, number_of_replicas = 2”
Masz pomysł, jak zdefiniować wiele argumentów?
--help
Na ten temat jest szczególnie mylące:--build-arg list
. To nie jest lista!Powyższa odpowiedź od pl_rock jest poprawna, jedyne, co chciałbym dodać, to oczekiwać ARG w pliku Docker, jeśli nie, nie będziesz mieć do niego dostępu. Więc jeśli robisz
Następnie wewnątrz Dockerfile powinieneś dodać
Napotkałem ten problem, więc mam nadzieję, że pomogę komuś (sobie) w przyszłości.
źródło
ARGS
należy to zadeklarować poFROM
ARG
nie jest nawet wspomniane w docs.docker.com/engine/reference/commandline/build/... i--build-arg
było dla mnie bezużyteczne bezARG
Jeśli chcesz użyć zmiennej środowiskowej podczas kompilacji. Powiedzmy, że ustawienie nazwy użytkownika i hasła.
Plik Docker
Polecenie terminalu
docker build --build-arg SMB_PASS=swed24sw --build-arg SMB_USER=Ubuntu . -t IMAGE_TAG
źródło
docker history
polecenia.Szkoda, że potrzebujemy również wielu ARG, powoduje to wiele warstw i spowalnia kompilację z tego powodu, a dla każdego, kto się nad tym zastanawia, obecnie nie można ustawić wielu ARG.
źródło