docker-compose下载后出现line 1: syntax error near unexpected token `<' 异常

声明:

  1. 因为没有docker-compose的tag,所以写了个docker的tag;
  2. 本问题已done,仅做记录供可能踩坑的同学参考;如果因为我个人操作失误,也烦请指出

问题描述:

按录播课程中wget命令,并赋执行权(chmod +x)后,出现异常提示
Line 1: /usr/local/bin/docker-compose: line 1: syntax error near unexpected token `<’
(后略)

复现步骤:

Step1:使用录播课命令下载docker-compose到本地(云服务器),使用命令:
curl “https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose

Step2:赋执行权限,并执,使用命令如下:
chmod +x /usr/local/bin/docker-compose
docker-compose version

排查步骤:

Step1:复制错误信息(首行)进搜索引擎,获得提示信息:
此时docker-compose并非可执行代码,是获取地址获取失败的页面(不信邪的我又去vim了一下,确实)

Step2:打开页面(https://github.com/docker/compose/releases/tag/1.25.4),手动触发下载,并通过管控台(ctrl+shift+i打开,network标签页内)观测真实下载状况,得出结论:
点击触发下载后,课件提示的下载地址,访问状态码301;实际可执行代码,通过另一个链接下载

解决方案:

Step1:使用我的小pe笔记本(Windows+SecureCRT),下载docker-compose-Linux-x86_64到本地
Step2:在云服务器下载传输工具:yum install -y lrzsz,输入rz然后上传(推测scp/rsync一样可行,没实操)
Step3:docker-compose version 运行成功

wget和curl命令有个参数是可以自动跟随301跳转的,加上参数可能会好些。

我刚试了下curl -L,应该是可以,session的时长和错误下载的时长都不一样,但因为443链接超时失败了

感谢~

github上的文件,多数都存放到amazon的云上,一般都需要代理

需要构建 Docker-compose.yml就可以下载了