将空字符串(双引号)参数传递给 dockerfile
Pass empty string (double quote) argument to dockerfile
我的项目在 2 个环境中被 Docker 和 运行 包裹:在代理后面 或 没有代理 。
在这种情况下,我使用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 传递 - 组成 2 个值:http://server:port
或 “”
(双引号)
但是在 “”
的情况下构建自定义图像时,$http_proxy
arg 为空,并在配置命令中显示错误
Step 4/4 : RUN pear config-set http_proxy $http_proxy
—> Running in 19b69d089ff2
config-set expects 2 or 3 parameters
既然是RUN
命令,可以加个测试:
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
,因为它是 one of the predefined ones。
我的项目在 2 个环境中被 Docker 和 运行 包裹:在代理后面 或 没有代理 。
在这种情况下,我使用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 传递 - 组成 2 个值:http://server:port
或 “”
(双引号)
但是在 “”
的情况下构建自定义图像时,$http_proxy
arg 为空,并在配置命令中显示错误
Step 4/4 : RUN pear config-set http_proxy $http_proxy
—> Running in 19b69d089ff2
config-set expects 2 or 3 parameters
既然是RUN
命令,可以加个测试:
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
,因为它是 one of the predefined ones。