在deploy.ssh上,Linux部署上的Azure Web应用程序失败

时间:2017-05-15 13:52:17

标签: azure azure-web-sites azure-web-app-service

是否有任何指南可以在Linux上的Azure Web App中为nodejs app管理deploy.sh脚本?在持续部署上运行命令时,我一直遇到部署错误。首次设置连续部署时,错误从第一个部署脚本开始。该错误主要发生在“bower install”命令中,其中bash命令行找不到bower命令。

为了解决这个问题,我执行了以下操作:

  1. 登录Kudu工具,Bash(ssh第一次不工作)
  2. 运行“npm install --production”,但这不会完成安装
  3. 运行“bower install”,无法安装错误凉亭 - 尝试使用npm install -g bower - 它仍然无法解决问题。
  4. 不知何故,我多次尝试打开/关闭Kudu工具,直到SSH开始加载(奇迹)
  5. 使用SSH终端,我可以执行“npm install -g bower”和“bower install”,结束了安装,我可以加载我的网站
  6. 但是,部署状态仍将保持失败,并且后续部署似乎根本没有得到改进,因为它在部署脚本中失败了。

    以下是子序列部署产生的错误:

      

    命令:“/ home / site / deploy / tools / deploy.sh”   /opt/Kudu/bin/Scripts/starter.sh:/home/site/deployments/tools/deploy.sh:/ bin / bash ^ M:错误的解释器:没有这样的文件或目录   /opt/Kudu/bin/Scripts/starter.sh:line 2:/home/site/deployments/tools/deploy.sh:成功   /opt/Kudu/bin/Scripts/starter.sh:/home/site/deployments/tools/deploy.sh:/ bin / bash ^ M:错误的解释器:没有这样的文件或目录\ n / opt / Kudu / bin / Scripts / starter.sh:line 2:/home/site/deployments/tools/deploy.sh:Eccess \ n / opt / Kudu / bin / Scripts / starter.sh“/home/site/deployments/tools/deploy.sh “

    来自MS的希望专家可以帮助我解决这个问题。谢谢。

    祝你好运, Szelee

1 个答案:

答案 0 :(得分:0)

在Linux上,任何运行的bash部署脚本都必须具有Unix行结尾(LF)而不是Windows行结尾(CRLF)。 Kuduscript将生成具有平台适当行结尾的脚本,但如果修改了这些脚本,或者如果您提供自己的custom deployment scripts,则确保编辑器不更改行结尾非常重要。

如果您的部署脚本出现问题,您可以随时使用Kudu控制台删除/ home / site / deployments / tools的内容。这是Kudu缓存kuduscript生成的部署脚本的目录。在下一次部署时,将重新生成脚本。