在我的Dockerfile中,我有下一个RUN脚本:
RUN set -ex; \
echo "Downloading plugins"; \
cd /tmp/plugins; \
for f in `cat plugins.list`; do\
curl -O -fSL $f; \
done;
当我从本地Ubuntu构建映像时,它可以完美运行,但是当我从Linux的Windows子系统中的Powershell或Ubuntu创建映像时,总是会出现相同的错误:
---> Running in 095faf998ee4
+ echo 'Downloading plugins'
+ cd /tmp/plugins
Downloading plugins
+ cat plugins.list
' curl -O -fS 'https://downloads.wordpress.org/plugin/ninja-forms.3.4.19.zip
curl: (3) URL using bad/illegal format or missing URL
如果我直接从bash运行curl命令,它也可以正常工作,但是,如果我运行脚本的那部分,它也会失败。
答案 0 :(得分:0)
正如@cbley所评论的那样,问题出在EOL字符上,因为在Windows上默认的sublime文本具有类似于Windows的EOL,这给脚本带来了错误。
用@cbley代替tr -d '\r' < plugins.list > plugins.list_new
来评论我的问题,或者通过将"default_line_ending": "unix",
添加到sublime首选项中来将sublime文本的默认EOL设置为“ Unix”,就可以解决问题。
感谢@cbley!