docker construire avec --build-arg avec plusieurs arguments
Selon la la documentation, il est possible de définir plusieurs arguments pour le drapeau --build-arg
, mais je ne peux pas savoir comment. J'ai essayé le suivant:
docker build -t essearch/ess-elasticsearch:1.7.6 --build-arg number_of_shards=5 number_of_replicas=2 --no-cache .
=> Cela renvoie une erreur.
J'ai aussi essayé:
docker build -t essearch/ess-elasticsearch:1.7.6 --build-arg number_of_shards=5,number_of_replicas=2 --no-cache .
=> Cela définit une variable, number_of_shards
, à la valeur "5,number_of_replicas=2"
Une idée de comment je peux définir plusieurs arguments?
Vous devez vous connecter pour publier un commentaire.
Utilisation
--build-arg
avec chaque argument.Si vous êtes de passage à deux argument puis ajouter
--build-arg
avec des arguments comme:--help
sur ce qui est particulièrement trompeur:--build-arg list
. Ce n'est pas une liste!La réponse ci-dessus par pl_rock est correct, la seule chose que je voudrais ajouter, c'est de s'attendre à ce que l'ARGUMENT à l'intérieur de la Dockerfile si non vous n'aurez pas accès à elle. Donc, si vous faites
À l'intérieur de l'Dockerfile vous devez ajouter
J'ai été en cours d'exécution dans ce problème, donc j'espère que j'aide quelqu'un (moi-même) dans l'avenir.
ARGS
doivent être déclarés après laFROM
ARG
est même pas mentionné dans le docs.docker.com/engine/reference/commandline/build/... et--build-arg
était inutile pour moi, sansARG
C'est une honte que nous avons besoin de plusieurs ARG trop, il en résulte plusieurs couches et ralentit la construction à cause de cela, et pour ceux qui demandent aussi que, actuellement il n'existe aucun moyen pour définir plusieurs ARGs.
Si vous souhaitez utiliser la variable d'environnement lors de la construction. Disons définition du nom d'utilisateur et mot de passe.
Dockerfile
Terminal De Commande
docker build --build-arg SMB_PASS=swed24sw --build-arg SMB_USER=Ubuntu . -t IMAGE_TAG
docker history
de commande.