我以前在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中的部署可以使用,因为我的其他应用程序没有本地.deployement
和deploy.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应用程序上没有这样做。
答案 0 :(得分:6)
不确定导致该状态的原因,但请尝试以下操作:
D:\home\site\deployments\tools
文件夹deploy.cmd
和deploymentCacheKey