2

我正在尝试使用cf CLIindex.html将页面上传到Bluemix。我不确定我是否以正确的心态处理这个问题。我正在考虑像我们通常使用普通托管服务一样通过 FTP 上传这个 HTML 文件。对于 Bluemix,我假设我应该使用cf 中的命令并将其视为一个应用程序。这是正确的吗?pushindex.html

如果这是正确的,我不知道如何使用这个命令。你能给我一个完整命令的例子来推送/上传这个页面吗?

4

4 回答 4

9

cf push命令将用于将您的应用程序“上传”到 Bluemix 服务器。但是,它不仅仅是上传。在 Bluemix 中有一个运行时或 buildpack 的概念,其想法是运行您的应用程序的运行时。因此,如果您上传了一个 Java 应用程序,您可以将它与 Java Liberty Buildpack/runtime 配对。如果您上传了一个 PHP 应用程序,那么您可以将它与 PHP buildpack 配对。

如果您只推送了一个没有 buildpack 的 HTML 文件,那么您可能会收到一个错误,表明无法确定 buildpack。Bluemix 尝试根据上传的文件类型猜测您想要的构建包类型,然后从内部缓存中拉取构建包。该cf push命令允许您明确声明要使用的构建包,-b因此无需猜测,也无需仅依赖 Bluemix 当前知道的构建包。

在您的情况下,对于静态 HTML 文件,您需要某种类型的 http 服务器(如nginx)作为“运行时”。请注意,Bluemix 当前没有用于此的内置构建包,因此您必须从其他地方获取它。已经有一些 buildpacks 可用,但最好使用的是这个:https ://github.com/cloudfoundry-community/staticfile-buildpack 。要使用它,只需从应用程序的根目录中提供带有命令-b选项的url,即cf push

cf push yourappname -b https://github.com/cloudfoundry-community/staticfile-buildpack

  • 确保您是从您的应用程序目录发出此命令。
  • yourappname成为您的网站/应用程序 URL 的一部分

对于一个实际的例子,我们将上传您index.html存在于文件夹中的文件C:\Users\XYZ\Documents\projects\ProjectHelloWorld,我们将调用此应用程序HelloWorld。这是我们要做的:

C:\> cd C:\Users\XYZ\Documents\projects\ProjectHelloWorld
C:\Users\XYZ\Documents\projects\ProjectHelloWorld> cf push HelloWorld -b https://git
hub.com/cloudfoundry-community/staticfile-buildpack

然后,Bluemix 会将本地目录中的所有内容上传到服务器,并从 URL 位置获取 buildpack,并使用 buildpack 暂存您的应用程序代码,然后 Bluemix 将尝试启动应用程序。push这是命令成功时的示例 Bluemix 输出:

Creating app HelloWorld in org xyz@gmail.com / space test as xyz@gmail.com...
OK    
Creating route HelloWorld.mybluemix.net...
OK    
Binding HelloWorld.mybluemix.net to HelloWorld...
OK    
Uploading HelloWorld...
Uploading app files from: C:\Users\XYZ\Documents\projects\ProjectHelloWorld
Uploading 1M, 21 files
Done uploading
OK    
Starting app HelloWorld in org xyz@gmail.com / space test as xyz@gmail.com...
-----> Downloaded app package (960K)
    Cloning into '/tmp/buildpacks/staticfile-buildpack'...
grep: Staticfile: No such file or directory
    -----> Using root folder
-----> Copying project files into public/
-----> Setting up nginx
grep: Staticfile: No such file or directory
-----> Uploading droplet (3.4M)

1 of 1 instances running

App started    

OK
Showing health and status for app HelloWorld in org xyz@gmail.com / space
 test as xyz@gmail.com...
OK    
requested state: started
instances: 1/1
usage: 1G x 1 instances
urls: HelloWorld.mybluemix.net
last uploaded: Tue Nov 25 14:50:44 +0000 2014

更多细节:

于 2014-11-20T17:39:36.977 回答
2

您可以使用“cf push ...”直接部署您的应用程序,也可以通过创建 manifest.yml 文件来部署您的应用程序。如果您在应用程序代码路径中创建 manifest.yml 文件,则只有 cf push 就足够了。

下面是这个的参考链接:

 http://clouds-with-carl.blogspot.in/2014/02/deploy-minimal-nodejs-application-to.html

希望能解开你的疑惑!!

于 2014-11-20T16:54:51.110 回答
1

是的,正如 whitfiea 提到的那样,它非常简单。您需要使用 cf push 命令。例如,如果您有一个带有 index.html 文件的静态网站。

例如以下。

[02:30 PM] jsloyer@jeffs-mbp [friendme]>ls
index.html

要将该应用程序推送到 Bluemix,请运行以下命令。

cf push yourappname -b https://github.com/cloudfoundry-community/staticfile-buildpack.git
于 2014-11-20T19:31:48.830 回答
1

https://www.ng.bluemix.net/docs/#starters/index.html 在此浏览中创建 Web 应用程序-> 构建 Web 应用程序-> 上传应用程序

它说:- 您可以使用示例 Java™ Web 应用程序开始。此示例应用程序显示可用的环境变量列表。您可以从社区示例站点下载示例 Java Web 应用程序。示例应用程序包含一个 JSP 和 WEB-INF/web.xml 文件。

提取下载的文件,并创建一个包含应用程序的新目录。从新创建的应用程序目录中,发出 cf push 命令。在以下示例中,您可以为应用程序使用唯一名称 testEnv,并为内存分配使用 512M。该名称在整个 Bluemix 环境中必须是唯一的。

$ cf push testEnv -m 512m

->因此,根据您的要求,您可以在上传应用程序之前将您的 html 文件与 JSP 文件一起添加。希望这有助于...

于 2014-11-21T06:21:21.960 回答