【问题标题】:Not able to push my local app to bluemix无法将我的本地应用程序推送到 bluemix
【发布时间】:2014-12-16 13:44:18
【问题描述】:

我在另一个 bluemix 帐户上运行了一个应用程序。我想复制该应用程序并在另一个 bluemix 帐户中运行它。所以我从 github repo 下载了代码。但是当我试图将这个应用程序推送到另一个帐户时,我看到了以下错误。

注意:我使用 cf push 推送下载的应用程序。有什么帮助吗?

日志:

2014-12-16T14:49:15.41+0530 [API]     OUT Updated app with guid e2fca26a-c62d-47 5d-8c21-8e959ae6632c ({"state"=>"STOPPED"})
2014-12-16T14:49:42.10+0530 [DEA]     OUT Got staging request for app with id e2 fca26a-c62d-475d-8c21-8e959ae6632c
2014-12-16T14:49:45.08+0530 [API]     OUT Updated app with guid e2fca26a-c62d-47 5d-8c21-8e959ae6632c ({"state"=>"STARTED"})
2014-12-16T14:49:45.65+0530 [STG]     OUT -----> Downloaded app package (4.6M)
2014-12-16T14:49:46.15+0530 [STG]     OUT -----> Downloaded app buildpack cache(4.4M)
2014-12-16T14:49:48.62+0530 [STG]     OUT     Staging failed: An application could not be detected by any available buildpack
2014-12-16T14:49:49.37+0530 [API]     ERR Encountered error: An app was not succ
essfully detected by any available buildpack

【问题讨论】:

    标签: ibm-cloud


    【解决方案1】:

    请检查您的 Manifest.yml。您的应用程序丢失或输入错误。您可以在下载的应用程序中查找此文件。并且不要忘记在运行 push 命令时传递构建包名称。

    此链接可能会有所帮助:

    https://ibm.biz/BdEgub

    【讨论】:

    • 我在 manifest.yml.. 中发现了问题,服务绑定输入错误。谢谢
    【解决方案2】:

    应用程序使用什么语言?有时 Cloud Foundry 无法检测到您正在运行的应用程序类型,当您推送应用程序时,您需要告诉它它是什么类型的应用程序。我们可以使用以下一些命令来做到这一点。我继续将其发布为几种不同的语言。更多信息在这里。 https://www.ng.bluemix.net/docs/#starters/byob.html

    要查看所有“内置”构建包,请运行以下命令。

    cf buildpacks

    你会得到类似下面的东西。

    Getting buildpacks...
    
    buildpack                             position   enabled   locked   filename   
    liberty-for-java                      1          true      false    buildpack_liberty-for-java_v1.9-20141202-0947-yp.zip   
    sdk-for-nodejs                        2          true      false    buildpack_sdk-for-nodejs_v1.9.1-20141208-1221-yp.zip   
    noop-buildpack                        3          true      false    noop-buildpack-20140311-1519.zip   
    java_buildpack                        4          true      false    java-buildpack-v2.5.zip   
    ruby_buildpack                        5          true      false    ruby_buildpack-offline-v1.1.1.zip   
    nodejs_buildpack                      6          true      false    nodejs_buildpack-offline-v1.0.4.zip   
    liberty-for-java_v1-8-20141118-1610   7          true      false    buildpack_liberty-for-java_v1.8-20141118-1610-yp.zip   
    liberty-for-java_v1-3-20140818-1538   8          true      false    buildpack_liberty-for-java_v1.3-20140818-1538.zip   
    sdk-for-nodejs_v1-8-20141104-1654     9          true      false    buildpack_sdk-for-nodejs_v1.8-20141104-1654-yp.zip 
    

    Java 应用程序: cf push appname -b liberty-for-javacf push appname -b java_buildpack

    Node.js: cf push appname -b sdk-for-nodejscf push appname -b nodejs_buildpack

    红宝石: cf push appname -b ruby_buildpack

    还支持许多其他语言。

    如需列表,请前往https://github.com/cloudfoundry-community/cf-docs-contrib/wiki/Buildpacks

    例如,如果您想使用 PHP,您可以执行以下操作。 cf push -b https://github.com/cloudfoundry/php-buildpack.git

    如果你想做围棋,你会做以下事情。 cf push appname -b https://github.com/cloudfoundry/go-buildpack.git

    【讨论】:

      【解决方案3】:

      解决这个问题的两种方法(假设它是一个 node.js 应用程序)

      1. 从提及应用名称的 cf 工具运行如下命令:

        cf push testmyapp -b sdk-for-nodejs -n testmyapp -m 128M -c 'node main.js'

      P.S- "-n" 选项用于 bluemix 上所需的主机名

      1. 在 manifest.yml 文件中明确提及应用名称、服务名称,如下所示:

        应用:

        • 名称:testmyapp

        主机:testmyapp

        内存:128M

        命令:node main.js

      P.S- 如果您使用第二种方法,则需要显式创建 manifest.yml。

      如果您仍然收到任何错误,请提供“cf logs testmyapp --recent”的o/p

      或者,您甚至可以直接推送您的应用,如下所示:

      对于到 Bluemix 的 Go 应用程序,但需要提供 -b 和 Go Buildpack URL:

      cf push appname -b https://github.com/cloudfoundry/go-buildpack.git

      同样,你可以为别人做。

      【讨论】:

        【解决方案4】:

        查看以下错误,您的应用无法检测到正确的 SDK 类型。

        2014-12-16T14:49:48.62+0530 [STG] OUT Staging failed: 任何可用的 buildpack 都无法检测到应用程序 2014-12-16T14:49:49.37+0530 [API] ERR 遇到错误:应用程序不成功 被任何可用的 buildpack 成功检测到

        您需要检查正确的 sdk 类型并在推送时提及它,如下所示:

        cf push myapp -b sdk-for-nodejs -n myapp -m 128M -c 'node main.js'

        【讨论】:

          【解决方案5】:

          我在上次 CloudFoundry 峰会上就各种应用推送错误进行了一次演讲:它们的症状、如何诊断以及解决方案是什么。见https://www.slideshare.net/greensight/10-common-errors-when-pushing-apps-to-cloud-foundry。希望对您有所帮助。

          【讨论】:

            【解决方案6】:

            鉴于上述答案有点陈旧,这里是最新的。构建包版本确实不再支持。您应该检查您在命令行上使用 -b 选项或在 manifest.yml 中指定的构建包的版本。

            在 IBM Cloud Doc ibmcloud cf buildpacks 中查看用于检查这些项目的命令。 https://cloud.ibm.com/docs/cloud-foundry-public?topic=cloud-foundry-public-using_buildpacks

            要查看按语言提供的构建包:

            ibmcloud cf buildpacks
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-05-26
              • 2014-08-05
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多