【问题标题】:I am deploying with 'eb deploy' in aws but getting the following error我在 aws 中使用“eb deploy”进行部署,但出现以下错误
【发布时间】:2015-08-15 18:41:51
【问题描述】:

我正在使用 '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 实例。
错误:更新环境操作已完成,但出现错误。有关详细信息,请参阅故障排除文档。

请帮我解决这个问题。

【问题讨论】:

  • 您能否向我们展示您的脚本:ebextensions/03-vsftpd.config 以及它是如何创建的:update-ftp-dns.sh

标签: amazon-web-services amazon-ec2


【解决方案1】:

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

我通过将 autoclrf 切换为 false 并再次提交相关文件来修复它。但是请注意这样做的后果。

【讨论】:

    【解决方案2】:

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

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

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

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

    ./configure : /bin/sh^M : bad interpreter

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-15
      • 2015-11-22
      • 2020-11-20
      • 2019-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-31
      相关资源
      最近更新 更多