このcf push
コマンドは、アプリケーションを Bluemix サーバーに「アップロード」するために使用するものです。ただし、アップロードするだけではありません。Bluemix にはランタイムまたはビルドパックの概念があり、これがアプリケーションを実行するためのランタイムになるという考え方です。したがって、Java アプリケーションをアップロードする場合は、それを Java Liberty Buildpack/runtime とペアにします。PHP アプリケーションをアップロードした場合は、それを PHP ビルドパックとペアリングします。
ビルドパックなしで HTML ファイルだけをプッシュすると、ビルドパックを判別できないことを示すエラーが発生する可能性があります。Bluemix は、アップロードされたファイルのタイプに基づいて必要なビルドパックのタイプを推測し、内部キャッシュからビルドパックをプルしようとします。このcf push
コマンドを使用すると、使用するビルドパックを明示的に指定できる-b
ため、当て推量を行う必要がなく、Bluemix が現在認識しているビルドパックだけに頼る必要がありません。
あなたの場合、静的な HTML ファイルの場合、「ランタイム」としてnginxのようなある種の http サーバーが必要になります。現在、Bluemix にはこのためのビルトイン ビルドパックがないため、別の場所から取得する必要があることに注意してください。いくつかのビルドパックが既に利用可能ですが、使用するのに最適なものは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
この app を呼び出します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 の場所からビルドパックを取得して、ビルドパックを使用してアプリケーション コードをステージングします。その後、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
詳細については: