subir library imagen hub example ejemplos crear compose docker environment-variables boot2docker dockerfile

library - ¿Podemos pasar variables ENV a través de la línea cmd mientras construimos una imagen acoplable a través de dockerfile?



dockerfile example (2)

Los contenedores se pueden construir utilizando build arguments (en Docker 1.9+) que funcionan como variables de entorno.

Aquí está el método:

FROM php:7.0-fpm ARG APP_ENV=local ENV APP_ENV ${APP_ENV} RUN cd /usr/local/etc/php && ln -sf php.ini-${APP_ENV} php.ini

y luego construir un contenedor de producción:

docker build --build-arg APP_ENV=prod .

Para su problema particular:

FROM debian ENV http_proxy ${http_proxy}

y luego ejecuta:

docker build --build-arg http_proxy=10.11.24.31 .

Tenga en cuenta que si crea sus contenedores con docker-compose , puede especificar estos build-args en el archivo docker-compose.yml , pero no en la línea de comandos. Sin embargo, puede usar la sustitución de variables en el archivo docker-compose.yml , que usa variables de entorno .

Estoy trabajando en una tarea que consiste en construir una imagen acoplable con centOs como base utilizando un Dockerfile . Uno de los pasos dentro del dockerfile necesita que se establezcan las variables http_proxy y https_proxy ENV para funcionar detrás del proxy.

Como este Dockerfile será utilizado por varios equipos con diferentes poderes, quiero evitar tener que editar el Dockerfile para cada equipo. En cambio, estoy buscando una solución que me permita pasar variables ENV en el momento de la compilación, por ejemplo,

sudo docker build -e http_proxy = somevalue.

No estoy seguro de si ya existe una opción que proporcione esto. ¿Me estoy perdiendo de algo?


Me enfrenté a la misma situación.

Según la respuesta de Sin30, la solución bonita es usar shell,

CMD ["sh", "-c", "cd /usr/local/etc/php && ln -sf php.ini-$APP_ENV php.ini"]