Solución:
No hay forma de exportar una variable de un script a una imagen secundaria. Como regla general, las variables de entorno viajan hacia abajo, nunca hacia un padre.
ENV
persistirá en el entorno de construcción y en las imágenes y contenedores secundarios.
Dockerfile
FROM busybox
ENV PLATFORM_HOME test
RUN echo $PLATFORM_HOME
Dockerfile.child
FROM me/platform
RUN echo $PLATFORM_HOME
CMD ["sh", "-c", "echo $PLATFORM_HOME"]
Construye el padre
docker build -t me/platform .
Luego construye al niño:
→ docker build -f Dockerfile.child -t me/platform-test .
Sending build context to Docker daemon 3.072kB
Step 1/3 : FROM me/platform
---> 539b52190af4
Step 2/3 : RUN echo $PLATFORM_HOME
---> Using cache
---> 40e0bfa872ed
Step 3/3 : CMD sh -c echo $PLATFORM_HOME
---> Using cache
---> 0c0e842f99fd
Successfully built 0c0e842f99fd
Successfully tagged me/platform-test:latest
Entonces corre
→ docker run --rm me/platform-test
test
Creo que la exportación establece las variables de entorno para los procesos secundarios. Así que realmente no importa si RUN o ENTRYPOINT. Al leer el comando de fuente de Linux que no funciona al compilar Dockerfile, creo que el comando de fuente tampoco puede ayudar.
Debe usar ENV si desea establecer las variables de entorno en Dockerfile.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)