docker - run - ¿Cómo configuro las variables de entorno durante la compilación en la ventana acoplable?
download docker image (1)
ARG
sirve para configurar las variables de entorno que se utilizan durante el proceso de docker build
la docker build
; no están presentes en la imagen final, por lo que no las ve cuando utiliza la docker run
.
Utiliza ARG
para las configuraciones que solo son relevantes cuando se está construyendo la imagen y no son necesarios para los contenedores que se ejecutan desde la imagen. Puede usar ENV
para las variables de entorno para usar durante la compilación y en contenedores.
Con este Dockerfile:
FROM ubuntu
ARG BUILD_TIME=abc
ENV RUN_TIME=123
RUN touch /env.txt
RUN printenv > /env.txt
Puede anular el argumento de compilación como lo hizo con la docker build -t temp --build-arg BUILD_TIME=def .
. Entonces obtienes lo que esperas:
> docker run temp cat /env.txt
HOSTNAME=b18b9cafe0e0
RUN_TIME=123
HOME=/root
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
BUILD_TIME=def
PWD=/
Estoy intentando establecer variables de entorno en el contenedor de la ventana acoplable durante la compilación pero sin éxito. Configurarlos cuando se usa el comando de ejecución funciona pero necesito configurarlos durante la compilación.
Dockerfile
FROM ubuntu:latest
ARG TEST_ENV=something
Comando que estoy usando para construir
docker build -t --build-arg TEST_ENV="test" myimage .
Corriendo
docker run -dit myimage
Estoy comprobando las variables de entorno disponibles usando
docker exec containerid printenv
y el resultado es
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
HOSTNAME=e49c1abfd58b
TERM=xterm
no_proxy=*.local, 169.254/16
HOME=/root
TEST_ENV no está presente