Selon 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é ce qui suit:
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 .
=> Ceci définit une variable number_of_shards
,, à la valeur "5, number_of_replicas = 2"
Une idée de la façon dont je peux définir plusieurs arguments?
--help
sur cela est trompeur en particulier:--build-arg list
. Ce n'est pas une liste!La réponse ci-dessus de pl_rock est correcte, la seule chose que j'ajouterais est d'attendre l'ARG dans le Dockerfile sinon vous n'y aurez pas accès. Alors si tu fais
Ensuite, dans le Dockerfile, vous devez ajouter
J'étais confronté à ce problème, alors j'espère aider quelqu'un (moi-même) à l'avenir.
la source
ARGS
doit être déclaré aprèsFROM
ARG
n'est même pas mentionnée dans docs.docker.com/engine/reference/commandline/build / ... et--build-arg
était inutile pour moi sansARG
Si vous souhaitez utiliser la variable d'environnement lors de la construction. Disons la configuration du nom d'utilisateur et du mot de passe.
Dockerfile
Commande de terminal
docker build --build-arg SMB_PASS=swed24sw --build-arg SMB_USER=Ubuntu . -t IMAGE_TAG
la source
docker history
commande.C'est dommage que nous ayons également besoin de plusieurs ARG, cela entraîne plusieurs couches et ralentit la construction à cause de cela, et pour quiconque se demande également cela, il n'y a actuellement aucun moyen de définir plusieurs ARG.
la source