Selon documentation , il est possible de définir plusieurs arguments pour le drapeau --build-arg
, mais je ne parviens 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 .
=> Ceci 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 comment je peux définir plusieurs arguments?
Utilisez --build-arg
avec chaque argument.
Si vous passez deux arguments, ajoutez --build-arg
à chaque argument, comme suit:
docker build \
-t essearch/ess-elasticsearch:1.7.6 \
--build-arg number_of_shards=5 \
--build-arg number_of_replicas=2 \
--no-cache .
La réponse ci-dessus de pl_rock est correcte, la seule chose que je voudrais ajouter est d'attendre l'ARG à l'intérieur du fichier Dockerfile, sinon vous n'y aurez pas accès. Donc si vous faites
docker build -t essearch/ess-elasticsearch:1.7.6 --build-arg number_of_shards=5 --build-arg number_of_replicas=2 --no-cache .
Ensuite, dans le fichier Docker, vous devez ajouter
ARG number_of_replicas
ARG number_of_shards
Je rencontrais ce problème, alors j'espère pouvoir aider quelqu'un (moi-même) à l'avenir.
Il est dommage que nous ayons également besoin de plusieurs ARG. Cela entraîne la création de plusieurs couches et ralentit la construction à cause de cela, et pour tous ceux qui s’interrogent également, actuellement il n’ya aucun moyen de définir plusieurs ARG.
Si vous voulez utiliser la variable d'environnement pendant la construction. Permet de définir le nom d'utilisateur et le mot de passe.
username= Ubuntu
password= swed24sw
Dockerfile
FROM ubuntu:16.04
ARG SMB_PASS
ARG SMB_USER
# Creates a new User
RUN useradd -ms /bin/bash $SMB_USER
# Enters the password twice.
RUN echo "$SMB_PASS\n$SMB_PASS" | smbpasswd -a $SMB_USER
Commande du terminal
docker build --build-arg SMB_PASS=swed24sw --build-arg SMB_USER=Ubuntu . -t IMAGE_TAG