无法将我的本地应用程序推送到bluemix

时间:2014-12-16 13:44:18

标签: ibm-cloud

我在另一个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

5 个答案:

答案 0 :(得分:5)

请检查你的Manifest.yml。您的应用程序缺少它或有一些错误的条目。您可以在下载的应用中查找此文件。并且在运行push命令时也不要忘记传递构建包名称。

此链接可能会有所帮助:

https://ibm.biz/BdEgub

答案 1 :(得分:3)

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

要查看所有"内置" buildpacks运行以下命令。

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 App: 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

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

答案 2 :(得分:2)

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

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

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

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

    1. 在manifest.yml文件中明确提及app name,service name,如下所示:

      应用:

      • name:testmyapp

      主持人:testmyapp

      记忆:128M

      命令:node main.js

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

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

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

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

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

      同样,你可以为其他人做。

答案 3 :(得分:1)

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

2014-12-16T14:49:48.62 + 0530 [STG] OUT暂存失败:任何可用的buildpack都无法检测到应用程序 2014-12-16T14:49:49.37 + 0530 [API] ERR遇到错误:应用程序不是succ 任何可用的buildpack都可以检测到它

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

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

答案 4 :(得分:0)

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