我正在部署&eb; eb deploy'在aws但收到以下错误

时间:2015-06-02 05:40:42

标签: amazon-web-services amazon-ec2

我正在使用' eb deploy'用于部署我的提交但是收到此错误

  

警告:您有未提交的更改       创建应用程序版本存档" 6fea"。
      上传:[#################################################### ###] 100%完成...
      信息:环境更新正在开始       信息:将新版本部署到实例。
      错误:[实例:i-10d1f9ec]命令在实例上失败。退货代码:126
  输出:/ bin / sh:./ scripts / update-ftp-dns.sh:/ bin / sh ^ M:错误的解释器:没有这样的文件或目录。
      .ebextensions / 03-vsftpd.config中的container_command 07-update_ftp_dns失败。有关更多详细信息,请使用控制台或EB CLI检查/var/log/eb-activity.log       INFO:在所有实例上完成命令执行。摘要:[成功:0,失败:1]       信息:部署了新的应用程序版本以运行EC2实例       错误:更新环境操作已完成,但有错误。有关更多信息,请参阅故障排除文档

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

错误消息有点隐藏,但它在那里:

  

输出: / bin / sh :./ script = update / shp -dns.sh: / bin / sh ^ M :错误的解释器:没有这样的文件或。目录

如果我不得不猜测,你有一个换行符,其中包含换行符和回车符。它将回车字符视为可执行文件名称的一部分。

确保您已转换/scripts/update-ftp-dns.sh脚本,以便它仅使用Unix行结尾。

请参阅./configure : /bin/sh^M : bad interpreter

答案 1 :(得分:0)

我有类似的东西,原因是Git的autocrlf值设置为true。这意味着当运行git checkout时,Git会将文件转换为Windows格式的文件 - 遗憾的是,Elastic Beanstalk工具尝试将Windows格式的文件上传到Linux服务器,这将显示错误像这样。

我通过将autoclrf切换为false来修复它,并再次提交相关文件。但请注意这种影响。