首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dockerfile CMD curl --noproxy *带有空格的参数不起作用

Dockerfile CMD curl --noproxy *带有空格的参数不起作用
EN

Stack Overflow用户
提问于 2018-02-23 11:24:34
回答 1查看 1.2K关注 0票数 0

我今天遇到了一件奇怪的事情。具体步骤如下:

1.我运行下面的cmd命令,它是输出:

代码语言:javascript
复制
shshenhx@shshenhx:~/Desktop/Docker/IP$ curl --noproxy '*' http://ip.cn
当前 IP:202.101.0.2 来自:上海市 电信 <====The cmd get my public IP 
successfully

然后我得到了一个Dockerfile,内容如下:

代码语言:javascript
复制
FROM ubuntu
RUN apt-get update \
&& apt-get install -y curl \
&& rm -rf /var/lib/apt/lists/*

RUN curl --noproxy '*' http://ip.cn  <==Here I run the cmd directly

输出仍然是

代码语言:javascript
复制
shshenhx@shshenhx:~/Desktop/Docker/IP$ curl --noproxy '*' http://ip.cn
当前 IP:202.101.0.2 来自:上海市 电信

3.如果我将最后一行改为CMD model,如下所示:

代码语言:javascript
复制
FROM ubuntu
RUN apt-get update \
&& apt-get install -y curl \
&& rm -rf /var/lib/apt/lists/*

CMD ["curl" ,  "--noproxy '*'" , "http://ip.cn"]

然后我得到了如下的错误:

代码语言:javascript
复制
shshenhx@shshenhx:~/Desktop/Docker/IP$ docker run myip
curl: option --noproxy '*': is unknown
curl: try 'curl --help' or 'curl --manual' for more information

有人能理解这里的问题吗?为什么我可以在dockerfile中使用run运行curl cmd,但是使用CMD失败?

EN

回答 1

Stack Overflow用户

发布于 2018-02-23 11:32:24

每个不是参数一部分的空格都需要一个,

代码语言:javascript
复制
CMD [ "curl" ,  "--noproxy", "*" , "http://ip.cn" ]

在这种情况下,*不需要加引号,因为没有一个外壳将*扩展到当前目录中的文件,参数直接传递给curl二进制文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48940629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档