Que yo sepa, solo ENV
permite eso, como se menciona en " Reemplazo del entorno "
Las variables de entorno (declaradas con la ENV
declaración) también se pueden usar en ciertas instrucciones como variables para ser interpretadas por el Dockerfile.
Deben ser variables de entorno para poder ser redeclaradas en cada nuevo contenedor creado para cada línea del Dockerfile docker build
.
En otras palabras, esas variables no se interpretan directamente en un Dockerfile, sino en un contenedor creado para una línea Dockerfile, de ahí el uso de la variable de entorno.
Este día, uso ambos ARG
( docker 1.10+ ydocker build --build-arg var=value
) y ENV
.
Usar ARG
solo significa que su variable es visible en el momento de la compilación, no en el tiempo de ejecución.
Mi Dockerfile generalmente tiene:
ARG var
ENV var=${var}
En su caso, ARG
es suficiente: lo uso típicamente para configurar la variable http_proxy, que la construcción de Docker necesita para acceder a Internet en el momento de la construcción.