5

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

6 回答 6

5

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

此链接可能会有所帮助:

https://ibm.biz/BdEgub

于 2014-12-16T13:49:35.527 回答
3

应用程序是什么语言的?有时 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

于 2014-12-16T15:04:40.883 回答
2

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

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

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

PS-“-n”选项用于 bluemix 上所需的主机名

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

    应用:

    • 名称:testmyapp

    主持人:testmyapp

    内存:128M

    命令:节点 main.js

PS-如果您使用第二种方法,则需要显式创建 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

同样,你可以为别人做。

于 2014-12-16T15:18:56.610 回答
1

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

2014-12-16T14:49:48.62+0530 [STG] OUT 暂存失败:任何可用的 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'

于 2014-12-28T07:29:52.353 回答
0

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

于 2015-06-01T18:56:42.373 回答
0

鉴于上述答案有点陈旧,这里是最新的。构建包版本确实不再支持。您应该在命令行上使用 -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
于 2021-09-22T09:14:15.590 回答