bug #1) 本地软件包
- 创建了一个测试项目"azure_test">
- 在文件夹"azure_test"中运行命令"express --view=hbs app"。
/azure_test/app 作为 npm 包的所有结构,但位于一个目录中。 本质上是一个本地包。
-
in Azure_test/package.json 声明了对此本地包的依赖关系
"依赖关系":{ "应用程序": "./应用程序" }
根据 https://docs.npmjs.com/getting-started/packages 的本地套餐
- 在我的 Windows 10 机器上,在文件夹/azure_test 中,我运行"npm install"、"npm start"以及所有工作和预期。
- 保存到 GitHub
- 在 Azure 中,创建一个"应用服务"并将 Azure 配置为直接从 github 获取源代码
这将失败。日志文件位于 https://purple01test.scm.azurewebsites.net/DebugConsole/?shell=powershell
包含行
26 详细 git 克隆 git://github.com/./app 致命: 远程错误:
如果我从/azure_test/app/package.json 中删除所有依赖项并将这些依赖项复制到/azure_test/package.json 中(即:不使用本地包)。 然后一切都在 Azure 上运行,但我失去了本地包的模块化(手动将依赖项复制到顶层)。
那么我是否正确地使用本地包,它恰好在 Windows 10 中工作,还是 Azure 有错误?
我公开了这个测试项目。可以在 https://github.com/johngrabner/azure_test/
错误 #2) 托管在 GitHub 中的私有包
"dependencies": {
"purple_shared_enums_pic_pi": "git+https://github.com/johngrabner/purple_shared_enums_PIC_PI.git"
}
这也会导致 Azure 失败。 如果 github 中托管的包是公共的,则 Azure 已通过。
因此,错误#2似乎是Azure无法将github密码用于依赖项。
我做了一些研究,发现Docker/Kubernetes可能是部署的更好选择。 许多课程和在线视频列出了"不再,它在我的机器上工作,但不能在生产中工作"。
您将应用程序打包在 Docker 中,在其中指定确切的操作系统、中间件等。 在您的计算机上进行测试。 然后将此映像部署到 Azure、AWS 或 Google。 Kubernetes 管理这些映像的跨度。