chr*_*etd 4 line-endings amazon-ec2 amazon-web-services aws-code-deploy
我有一个Meteor应用程序,我正在使用CodeDeploy(本地构建 - > S3 - > CodeDeploy - > EC2)在EC2实例上进行部署.
我遇到了一个星期前没有的问题:在创建部署时,它在ApplicationStop步骤中失败并显示消息
[stderr]bash: /opt/codedeploy-agent/deployment-root/.../scripts/stop.sh: /bin/sh^M: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我知道这应该是Windows样式行结尾的问题,但它看起来不是
~$ md5sum stop.sh
d41d8cd98f00b204e9800998ecf8427e stop.sh
~$ dos2unix stop.sh
~$ md5sum stop.sh
d41d8cd98f00b204e9800998ecf8427e stop.sh
Run Code Online (Sandbox Code Playgroud)
如果我在十六进制编辑器中打开文件,行结尾看起来像0x0a,而不是0x0d0a(Windows样式).
00000000: 2321 2f62 696e 2f73 680a 736f 7572 6365 #!/bin/sh.source
00000010: 202f 686f 6d65 2f65 6332 2d75 7365 722f /home/ec2-user/
...
为了确定,我从S3下载了部署档案,提取并再次检查 - 行结尾确实如上所述.
这很奇怪,因为我一周前没有遇到问题,如果我尝试部署一周前成功部署的版本,就会发生同样的问题(!!)......即使它当时正在工作.
帮助赞赏!
[更新]:从我的stop.sh脚本中删除第一行/bin/sh,不会改变任何内容.我想sudo ln -s /bin/sh /bin/sh^M应该为一个肮脏的快速修复工作,但我想要一个更清洁的解决方案.:/
[更新2]:我发现由于某种原因,CodeDeploy在实例上使用了错误的部署档案.屏幕截图如果我去/opt/codedeploy-agent/.../d-GBQV1EHSE,这确实是一个旧的部署,出现了Windows样式行返回问题......但是CodeDeploy不应该使用此存档/opt/codedeploy-agent/.../d-XWEJW9SVE并且包含有效的存档.
谢谢
| 归档时间: |
|
| 查看次数: |
631 次 |
| 最近记录: |