我在另一个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
答案 0 :(得分:5)
请检查你的Manifest.yml。您的应用程序缺少它或有一些错误的条目。您可以在下载的应用中查找此文件。并且在运行push命令时也不要忘记传递构建包名称。
此链接可能会有所帮助:
答案 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-java
或cf push appname -b java_buildpack
Node.js的:
cf push appname -b sdk-for-nodejs
或cf 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应用程序)
从提供应用名称的cf工具中运行如下命令:
cf push testmyapp -b sdk-for-nodejs -n testmyapp -m 128M -c' node main.js'
P.S-" -n" option用于bluemix上所需的主机名
在manifest.yml文件中明确提及app name,service name,如下所示:
应用:
主持人:testmyapp
记忆:128M命令:node main.js
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。希望它会有所帮助。