我以前在azure web应用程序上有一个节点应用程序,现在是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 repo中看到它,而且我也可以在本地看到它。
我有其他的go应用程序部署在azure上,与供应商的依赖关系很好,但这一个,以前是一个节点应用程序根本不工作。
我甚至试着对来自 deploy.cmd
,因为所有步骤都是本地的,所以不需要执行此步骤。但即使这样也不起作用,因为 go build
未能抱怨不存在依赖项。在供应商文件夹里 GO15VENDOREEXPERIMENT
在cmd文件和应用程序设置中设置为1。
那么我有什么选择呢?
我怎么能告诉kudu使用一个go默认部署,也许来自azure的一个可以工作,因为我的另一个应用没有本地部署 .deployement
以及 deploy.cmd
文件夹。
编辑
我刚刚做了一个测试部署到一个全新的azureweb应用程序,默认情况下,该应用程序被检测为一个节点应用程序。我想这是因为在根目录下有一个package.json,我还有一个main.go package main
作为包名。
所以也许只是 deploy.cmd
它是由 azure site deploymentscript
不是最新的吗(我更新了azure cli的verison仅供参考,因为一开始我没有--go标志)。
为了完整起见,这里是kudu在新创建的应用程序上部署时的输出,得到的错误与node one相同: 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
是否设置为尝试克隆依赖项?在我的另一个围棋应用程序上没有这样做。
1条答案
按热度按时间hk8txs481#
不确定是什么导致这种状态,但请尝试以下操作:
转到kudu控制台
进了监狱
D:\home\site\deployments\tools
文件夹删除
deploy.cmd
以及deploymentCacheKey
试着宣誓作证