Comment passer des arguments à un Dockerfile?

120

J'utilise l'instruction RUN dans un Dockerfilepour installer un rpm

RUN yum -y install samplerpm-2.3

Cependant, je veux passer la valeur "2.3" comme argument. Mon instruction RUN devrait ressembler à quelque chose comme:

RUN yum -y install samplerpm-$arg

$arg=2.3

repas à l'heure
la source

Réponses:

153

Vous recherchez --build-arget l' ARGinstruction. Ce sont des nouveautés depuis Docker 1.9. Consultez https://docs.docker.com/engine/reference/builder/#arg . Cela vous permettra d'ajouter des éléments ARG argà Dockerfile, puis de créer avec docker build --build-arg arg=2.3 ..

Andy Shinn
la source
1
Après avoir fait tout cela, j'obtiens une erreur ** Aucun package samplerpm- $ arg disponible. ** Il semble que la valeur de l'argument 2,3 ne soit pas remplacée.
repas du
1
Vous devrez probablement créer une nouvelle question avec la Dockerfilecommande, utilisée pour la construction et une erreur pour que je puisse vous aider.
Andy Shinn
2
qu'en est-il des variables env à la place?
Alexander Mills