2017-10-14 3 views
1

Mon projet encapsulé par Docker et exécuté dans 2 environnements: derrière le proxy ou sans proxy.Passer l'argument chaîne vide (guillemets doubles) à dockerfile

Dans ce cas, j'utilise php: apache image et installer, poste via PECL, donc je dois mettre procuration manuellement

FROM php:apache 

RUN pear config-set http_proxy $http_proxy 
# RUN pecl install mongodb && docker-php-ext-enable mongodb 

Le $http_proxy arg sera passé de docker-Compose en 2 valeurs: http://server:port ou “” (guillemet)

Mais quand construire l'image personnalisée en cas “”, la $http_proxy arg était nulle, et une erreur de show dans la commande config

Etape 4/4: RUN poire config-set http_proxy $ http_proxy

-> Courir dans 19b69d089ff2

config-set 2 ou 3 s'attend paramètres

Répondre

1

Comme il est une commande RUN , vous pouvez ajouter un test:

docker build -t my_apache . --build-arg http_proxy=.... 

Avec un Dockerfile:

ARG http_proxy 
RUN if [ "x$http_proxy" != "x" ] ; then pear config-set http_proxy $http_proxy; fi 

En fait, vous n'avez pas besoin de ARG http_proxy car il s'agit de one of the predefined ones.