2016-02-19 84 views
2

我之前在Azure Web App上有一个Node应用程序,现在已成为Go应用程序。问题是,当我部署我得到这个从捻:如何在Azure上重置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"').

这显然后来抱怨说,没有服务器/ app.js文件中找到。

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

即使我在应用程序的设置中拥有GO15VENDOREXPERIMENT = 1,它仍然抱怨依赖关系。我的所有依赖关系都在/ vendor文件夹中进行了销售。

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

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

我还有其他Go应用程序,它们在Azure上进行了销售依赖关系的部署,但是这个应用程序之前根本没有工作。

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

那么我在这里有什么选择?

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

编辑

我只是做了一个试验部署到一个全新的Azure的Web应用程序,并且应用程序被检测为默认节点的应用程序。我想这是由于package.json在根目录下的存在,我也有一个main.go,其包名为package main

所以也许它只是azure site deploymentscript生成的deploy.cmd,这是不是最新或什么? (我仅更新了我的天蓝色版本,因为起初我没有 - - 旗)。

只是为了完整性在刚创建的应用程序部署时,得到同样的错误作为节点一个这里的捻的输出:这里

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应用程序中没有这样做。

回答

4

不知道是什么原因造成这种状态,但请尝试以下操作:

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

当我第一次在部署和存储库上做了rm -rf时收到这个消息Ÿ我试图部署一个新的Web应用程序,并且出现同样的错误,由于某些原因,从/ vendor文件夹中看不到依赖关系 –

+0

它试图克隆出售的依赖项远程程序:#cd。 git clone https://github.com/org/mypkg。即使GO15VENDOREXPERIMENT = 1,我也不明白我在做什么错误 –

+0

您可以尝试按照David提及并重试的方式清理缓存吗?如果你提到你有另一个Go应用程序正在工作,看看有什么不同,那么也可以很好地对所有环境变量进行差异化。 (为了获得环境变量,在调试控制台上简单运行“set”) –