gpt4 book ai didi

amazon-web-services - CodeDeploy 部署失败 : bad interpreter/bin/sh^M

转载 作者:行者123 更新时间:2023-12-04 08:12:03 25 4
gpt4 key购买 nike

我有一个 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

我知道这应该是 Windows 风格的行尾问题,但看起来不是
~$ md5sum stop.sh
d41d8cd98f00b204e9800998ecf8427e stop.sh
~$ dos2unix stop.sh
~$ md5sum stop.sh
d41d8cd98f00b204e9800998ecf8427e stop.sh

如果我在十六进制编辑器中打开文件,行结尾看起来像 0x0a ,而不是 0x0d0a ( window 风格)。

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 在实例上使用了错误的部署存档。 Screenshot如果我去 /opt/codedeploy-agent/.../d-GBQV1EHSE ,这确实是一个旧部署,存在 Windows 样式行返回的问题...但 CodeDeploy 不应使用此存档 /opt/codedeploy-agent/.../d-XWEJW9SVE存在并包含有效的存档。

谢谢

最佳答案

和christophetd讨论了一下,发现配置有问题,指向另一个(旧的)stop.sh,确实有Windows风格的CRLF。

更新配置从而解决了他的问题。

关于amazon-web-services - CodeDeploy 部署失败 : bad interpreter/bin/sh^M,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36479707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com