【问题标题】:Running AtlasBoard on Azure Web App with iisnode使用 iisnode 在 Azure Web App 上运行 AtlasBoard
【发布时间】:2016-09-01 11:35:31
【问题描述】:

我正在尝试在 Azure Web 应用程序中运行 AtlasBoard,但无法使其正常工作。我使用“30 秒内开始”步骤创建了一个新板,当我在本地启动演示板时,演示板运行良好。它既可以通过atlasboard start 3333启动它,也可以通过node start运行。

我已将 node_modules 目录添加到 .gitignore。

我在 Azure 上使用 git 部署,这似乎工作正常。部署日志还显示 npm 模块已安装。

这是部署的最后一个输出:

Using start-up script start.js from package.json.
Generated web.config.
The iisnode.yml file explicitly sets nodeProcessCommandLine. Automatic node.js version selection is turned off.
Selected npm version 3.5.1
npm WARN Invalid name: "HRMTS AtlasBoard"
npm WARN wwwroot No description
npm WARN wwwroot No repository field.
npm WARN wwwroot No README data
npm WARN wwwroot No license field.
Finished successfully.

但是,应用程序似乎没有启动,当我查看 Kudu 控制台中的日志消息时,我得到了以下信息:

Error: error installing D:\home\site\wwwroot\packages\demo
    at process.<anonymous> (D:\Program Files (x86)\iisnode\interceptor.js:73:106)
    at emitOne (events.js:96:13)
    at process.emit (events.js:188:7)
    at process._fatalException (node.js:267:26)

有人知道这里出了什么问题吗?

【问题讨论】:

    标签: node.js azure iisnode kudu atlasboard


    【解决方案1】:

    如果您使用位于 https://bitbucket.org/atlassian/atlasboard/src 的演示应用程序的存储库在 Azure 上进行测试,我们需要进行一些额外的修改才能使测试在 Azure Web 应用程序上运行。

    首先,假设您已成功将应用程序部署到 Azure,但在开始运行应用程序时失败。然后您可以利用 Kudu 控制台站点或 Visual Studio Online 扩展(请参阅How to install composer on app service? 的答案了解如何启用 Azure Web 应用程序的扩展)查看D:\home\site\wwwroot\packages\demo\npm-debug.log 的错误日志。

    也有类似的错误:

    155 错误节点 -v v0.6.20

    156 错误 npm -v 1.1.37

    157 错误消息 SSL 错误:CERT_UNTRUSTED

    似乎atlasboard 在 Azure 上以非常低的节点版本运行命令。我们可以手动修改依赖脚本来绕过错误。

    如果在部署过程中遇到错误,请在部署前修改package.json中的npm版本,例如:

    "engines": {
        "npm": ">2.0.0",
        "node": ">=0.10"
      },
    

    部署后:

    • 查看并修改根目录start.js中的port

      atlasboard({port: process.env.port||3000 , install: true}, 
      function  (err) {
        if (err) {
          throw err;
        }
      });
      
    • 修改D:\home\site\wwwroot\node_modules\atlasboard\lib\package-dependency-manager.js中的install函数以使用更高的npm版本并删除--production参数,例如:

      ...
      var npmCommand = isWindows ? "D:\\Program Files (x86)\\npm\\3.5.1\\npm.cmd" : "npm";
      executeCommand(npmCommand, ["install", pathPackageJson], function(err,     code){
      ...
      })
      

    然后重新启动您的网站。

    如有任何疑问,请随时告诉我。

    【讨论】:

    • 将 process.env.ATLASBOARD_PORT 更改为 process.env.PORT 并在 package-dependency-manager.js 中进行修改对我有用。谢谢!
    • 我写了一篇关于如何启动和运行的快速博客文章。 blog.stoverud.no/posts/atlasboard-on-azure-webapp
    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    • 2016-10-10
    相关资源
    最近更新 更多