Comment rendre les variables d'environnement disponibles pour les commandes Docker RUN à partir de docker-composer?

J'ai un Dockerised demande qui je voudrais faire tourner dans les deux proxy et non-hôte proxy environnements. Je suis en train de résoudre ce problème en copiant la normale des variables d'environnement, tels que http_proxy, dans les conteneurs si et seulement si elles existent dans le pays hôte.

Je peux obtenir 90% de la sorte, il n'y en exécutant

set | grep -i _proxy=>proxies.env

dans un script de niveau supérieur, et puis d'avoir, dans mon menu fixe-composer.yml:

myserver:
  build: ./myserver
  env_file:
   - proxies.env

Cette copie de l'hôte de l'environnement variables de remplacement, le cas échéant, dans le conteneur du serveur, et il fonctionne dans le sens que ces variables sont disponibles au conteneur moment de l'exécution, en d'autres termes par la scène que le Dockerfile CMD ou point d'entrée exécute.

Toutefois, j'ai un conteneur qui doit exécuter npm comme une étape de génération, c'est à dire à partir d'une commande EXÉCUTER dans le Dockerfile, et ces variables ne semblent pas être présent à cette scène, les mnp ne peut pas trouver le serveur proxy et se bloque. Dans d'autres œuvres, si j'ai

RUN set

dans mon Dockerfile, je ne peux pas voir les variables de procurations.env, mais si je ne

docker exec -it myserver /bin/bash

et puis exécutez le jeu, je peux tout voir de procurations.env.

Peut-on recommander une façon de faire de ces variables visibles à construire conteneur de temps, sans avoir à coder en dur, de sorte que mon menu fixe-composer.yml et Dockerfile continuera de fonctionner à la fois pour les hôtes avec les proxys et les hôtes sans proxy?

(En cours d'exécution avec centos 7, docker-composer 1.3.1 et docker 1.7.0)

source d'informationauteur Francis Norton