如何在Azure上重置Kudu缓存部署
我以前在Azure Web应用程序上有一个节点应用程序,现在是Go应用程序。问题是,当我部署时,我从Kudu获得以下信息:如何在Azure上重置Kudu缓存部署,azure,go,azure-web-app-service,kudu,Azure,Go,Azure Web App Service,Kudu,我以前在Azure Web应用程序上有一个节点应用程序,现在是Go应用程序。问题是,当我部署时,我从Kudu获得以下信息: 使用部署脚本的缓存版本(命令:“azure-y--无点部署-r“D:\home\site\repository”-o“D:\home\site\deployments\tools”--节点--sitePath“D:\home\site\repository”)。 这显然会导致后来没有找到服务器/app.js文件 因此,我尝试使用azure site deploymentsc
使用部署脚本的缓存版本(命令:“azure-y--无点部署-r“D:\home\site\repository”-o“D:\home\site\deployments\tools”--节点--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
中注释依赖项getter,因为所有这些都是本地的,所以不需要执行这些步骤。但即使这样也不起作用,因为go-build
失败了,它抱怨依赖性不存在。它位于供应商文件夹中,并且在cmd文件和应用程序设置中将GO15VENDOREEXPERIMENT
设置为1
那么我的选择是什么呢
我如何告诉Kudu使用Go默认部署,也许来自Azure的部署会起作用,因为我的另一个应用程序没有本地.deployment
和deploy.cmd
文件
编辑
我刚刚对一个全新的Azure web应用程序进行了测试部署,默认情况下该应用程序被检测为节点应用程序。我猜这是因为根目录中存在package.json,我还有一个main.go,它的包名是package main
因此,可能只是由azure site deploymentscript
生成的deploy.cmd
不是最新的还是什么?(我更新了azure cli的verison仅供参考,因为起初我没有--go标志)
为了完整起见,这里是Kudu在新创建的应用程序上部署时的输出,得到与节点应用程序相同的错误:
远程:解析依赖项
远程:#cd。;git克隆https://github.com/org/mypkg D:\local\Temp\8d3397e1e014401\gopath\src\github.com\org\mypkg
远程:构建Go应用程序以生成exe文件
远程:克隆到“D:\local\Temp\8d3397e1e014401\gopath\src\github.com\org\mypkg”。。。
远程:致命:无法读取的用户名'https://github.com“:错误的文件描述符
远程:包github.com/org/pkg/lib:exit status 128
remote:azureapp\main.go:3:8:在以下任意位置找不到包“github.com/org/pkg/lib”:
远程:D:\local\Temp\8d3397e1e01401\gopath\src\azureapp\vendor\github.com\org\pkg\lib(供应商树)
远程:复制用于部署的文件
远程:D:\Program Files\Go\1.5.3\src\github.com\org\pkg\lib(来自$GOROOT)
远程:D:\local\Temp\8d3397e1e01401\gopath\src\github.com\org\pkg\lib(来自$gopath)
远程:KuduSync.NET从:“D:\home\site\repository”到:“D:\home\site\wwwroot”
远程:找不到D:\home\site\repository\azureapp.exe
远程:复制web.config
远程:web.config已存在。跳过
远程:已成功完成。
远程:正在运行部署后命令。。。
远程:部署成功。
为什么要克隆库,这一行[第二行]可能是导致整个问题的原因:
remote:#cd。;git克隆https://github.com/org/mypkg
为什么如果设置了
SET GO15VENDOREXPERIMENT=1
,它将尝试克隆依赖项?它在我的另一个Go应用程序上没有这样做。不确定是什么导致了这种状态,但请尝试以下操作:
- 去
- 进入
文件夹D:\home\site\deployments\tools
- 删除
和deploy.cmd
deploymentCacheKey
- 试销