【问题标题】:Error installing Etherpad on Bluemix from CLI从 CLI 在 Bluemix 上安装 Etherpad 时出错
【发布时间】:2015-09-22 02:35:19
【问题描述】:

我正在尝试按照此处的指南使用命令行界面在 Bluemix 上部署 Etherpad 版本 1.5.7 (https://github.com/cloudfoundry/cli/releases) - https://www.ng.bluemix.net/docs/starters/install_cli.html

我收到附加错误

执行命令时出现此错误 - cf push appname https://github.com/cloundfoundry/node.js-buildpack.git

任何有关如何解决此错误的帮助都会有所帮助。 TIA。

【问题讨论】:

    标签: node.js ibm-cloud etherpad


    【解决方案1】:

    输出中的关键信息是:

    It looks like you're deploying on a stack (currently set to *lucid64*) that's not supported by this buildpack.
    

    您可以通过命令cf stacks 查看Bluemix 中支持的堆栈以及它们当前设置为使用的顺序。如果您运行此命令,您可能会看到lucid64 位于列表顶部。

    根据您指定的 buildpack 的 changelog,在 v1.2.0 中添加了对 cflinuxfs2 堆栈的支持,然后在 v1.4.0 中删除了 lucid 二进制文件。由于 buildpack 中不再提供 lucid 支持,因此您需要指定要使用的不同堆栈。这可以通过-s 命令行选项来完成,以指定您在cf stacks 命令中看到的可用值之一。例如。

    cf push EtherPadOnceMore -b https://github.com/cloudfoundry/nodejs-buildpack -s cflinuxfs2
    

    根据下面的 cmets,如果使用 http://github.com/ether/etherpad-lite/releases 的存储库部署到 CloudFoundry/Bluemix,此处的信息将作为编辑添加以捕获其他步骤:

    1. 上面使用的 buildpack 期望 package.json 在你推送的根目录中。将/src/package.json复制到项目根目录,修改内容去掉'dependencies'部分,避免初始模块安装
    2. 使用 -c 命令行选项指定启动命令(以模拟设置和启动脚本)。将-c "npm install src/ && node node_modules/ep_etherpad-lite/node/server.js" 添加到cf push 命令。
    3. settings.json 文件中删除“ip”和“port”,以便Bluemix 运行时使用PORT 环境变量(自动为您设置PORT)

    【讨论】:

    • 感谢您的回答。在尝试 ---> cf push EtherPadOnceMore -b github.com/cloudfoundry/nodejs-buildpack -s cflinuxfs2 我得到错误 Unable to parse package.json。我在哪里可以找到这个文件,我应该把它放在哪里?我在 etherpad 代码库中还没有 package.json 文件。
    • 在 etherpad-1.5.7 的 'src' 文件夹中可以看到 package json 文件。不知道为什么它没有被推送。
    • 在您的屏幕截图中,我看到该应用程序的文件正在从 c:\users\maddie\desktop 上传。执行推送时,默认行为是将从运行命令的目录推送文件。这是你想要的吗?您可能需要更改目录才能从应用程序所在的目录推送。 Node.js 应用程序的 package.json 文件应位于项目的根目录。 “无法解析”消息也可能表示 package.json 文件格式不正确,因此您可能需要检查它以确保语法正确。
    • @maddie - 这个项目最初不是为 CloudFoundry 设计的,但是一些小的改动可以让它工作。 (1) buildpack 期望 package.json 位于您推送的根目录。将 /src/package.json 复制到项目的根目录。修改内容以删除“依赖项”部分以避免初始模块安装 (2) 使用 -c 命令行选项指定启动命令(模拟设置和启动脚本)。将 '-c "npm install src/ && node node_modules/ep_etherpad-lite/node/server.js" ' 添加到 'cf push' 命令中。 (3) 从settings.json文件中删除“ip”和“port”
    • 很高兴听到@maddie - 我已经更新了答案以提供基于 cmets 的额外步骤,以防有人使用相同的 repo。如果您对答案感到满意,请考虑接受。
    猜你喜欢
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多