将空string(双引号)parameter passing给dockerfile

我的项目由Docker包装,并运行在2个环境中: 后台代理无代理

在这种情况下,我使用php:apache映像并通过pecl安装ext,所以我必须手动设置代理

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

$http_proxy arg将从docker-compose传入2个值: http://server:port“” (双引号)

但是,如果在“”构build自定义图像,则$http_proxy arg为空,并在config命令中显示错误

步骤4/4:运行梨configuration集http_proxy $ http_proxy

– >在19b69d089ff2中运行

config-set需要2或3个参数

由于它是一个RUN命令,所以可以添加一个testing:

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

使用Dockerfile:

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

您实际上不需要ARG http_proxy因为它是预定义的之一 。