¿Cómo pasar argumentos a un Dockerfile?

120

Estoy usando la instrucción RUN dentro de a Dockerfilepara instalar un rpm

RUN yum -y install samplerpm-2.3

Sin embargo, quiero pasar el valor "2.3" como argumento. Mi instrucción RUN debería verse así:

RUN yum -y install samplerpm-$arg

dónde $arg=2.3

mi hora
fuente

Respuestas:

152

Buscas --build-argy la ARGinstrucción. Estos son nuevos a partir de Docker 1.9. Consulte https://docs.docker.com/engine/reference/builder/#arg . Esto le permitirá añadir ARG arga la Dockerfiley luego construir condocker build --build-arg arg=2.3 . .

Andy Shinn
fuente
1
Después de hacer todo eso, aparece un error ** No hay paquete samplerpm- $ arg disponible. ** Parece que el valor del argumento de 2.3 no se sustituye.
hora media del
1
Probablemente necesitará crear una nueva pregunta con el Dockerfilecomando utilizado para compilar y el error para que yo lo ayude.
Andy Shinn
2
¿qué pasa con las variables env en su lugar?
Alexander Mills