如何在Azure

时间:2016-02-19 22:04:07

标签: azure go azure-web-sites kudu

我以前在Azure Web App上有一个Node应用程序,现在是Go应用程序。问题是当我部署时,我从Kudu得到这个:

Using cached version of deployment script (command: 'azure -y --no-dot-deployment -r "D:\home\site\repository" -o "D:\home\site\deployments\tools" --node --sitePath "D:\home\site\repository"').

这显然后来抱怨没有找到server / app.js文件。

所以我尝试使用azure site deploymentscript --go为我的应用生成部署脚本。

即使我在应用程序的设置中有GO15VENDOREXPERIMENT = 1,它也在抱怨依赖关系。我的所有依赖项都出自/ vendor文件夹。

我在deploy.cmd命令生成的azure site deploymentscript文件中设置此变量。

仍在抱怨一个依赖关系不在那里。请注意,现在它正在搜索本地供应商树,但依赖关系在那里,我可以在Github仓库中看到它,我也在本地看到它。

我还有其他的Go应用程序可以很好地部署在Azure上的销售依赖项,但是这个是一个Node应用程序以前完全不能正常工作。

我甚至试图从deploy.cmd评论依赖项getter,因为所有这些都是本地的,不需要这些步骤。但即使这样也行不通,因为go build没有抱怨依赖不存在。它位于供应商文件夹中,GO15VENDOREEXPERIMENT在cmd文件和应用程序应用程序设置中设置为1。

那么我的选择是什么?

我如何告诉Kudu使用Go默认部署,也许Azure中的部署可以使用,因为我的其他应用程序没有本地.deployementdeploy.cmd文件。

修改

我刚刚对一个全新的Azure网络应用程序进行了测试部署,默认情况下该应用程序被检测为节点应用程序。我猜这是因为在根目录中存在一个package.json,我还有一个以package main作为包名的main.go。

所以也许只有deploy.cmd生成的azure site deploymentscript不是最新的或者是什么? (我刚才更新了我对azure-cli的验证,因为起初我没有--go标志)。

为了完整性,这里是Kudu在新创建的应用程序上部署时的输出,得到与Node 1相同的错误:

remote: Resolving dependencies remote: # cd .; git clone https://github.com/org/mypkg D:\local\Temp\8d3397e1e014401\gopath\src\github.com\org\mypkg remote: Building Go app to produce exe file remote: Cloning into 'D:\local\Temp\8d3397e1e014401\gopath\src\github.com\org\mypkg'... remote: fatal: could not read Username for 'https://github.com': Bad file descriptor remote: package github.com/org/pkg/lib: exit status 128 remote: azureapp\main.go:3:8: cannot find package "github.com/org/pkg/lib" in any of: remote: D:\local\Temp\8d3397e1e014401\gopath\src\azureapp\vendor\github.com\org\pkg\lib (vendor tree) remote: Copy files for deployment remote: D:\Program Files\Go\1.5.3\src\github.com\org\pkg\lib (from $GOROOT) remote: D:\local\Temp\8d3397e1e014401\gopath\src\github.com\org\pkg\lib (from $GOPATH) remote: KuduSync.NET from: 'D:\home\site\repository' to: 'D:\home\site\wwwroot' remote: Could Not Find D:\home\site\repository\azureapp.exe remote: Copy web.config remote: web.config already existed. Skip remote: Finished successfully. remote: Running post deployment command(s)... remote: Deployment successful.

为什么要尝试克隆库,这一行[第二行]可能是造成整个问题的原因:

remote: # cd .; git clone https://github.com/org/mypkg

为什么设置SET GO15VENDOREXPERIMENT=1时它会尝试克隆依赖项?它在我的其他Go应用程序上没有这样做。

1 个答案:

答案 0 :(得分:6)

不确定导致该状态的原因,但请尝试以下操作:

  • 转到Kudu Console
  • 进入D:\home\site\deployments\tools文件夹
  • 删除deploy.cmddeploymentCacheKey
  • 尝试depoying