dotCloudは、Webアプリケーションをホストするためのクラウドプラットフォームです。 無料のアカウントは学習に適しています。
その利点:
- 2つのサービスを無料で使用できます。 herokuとは異なり、本格的なデータベースアプリケーションを作成できます。
- ファイルシステムは書き込み可能です-ログを保持する方が便利です
- 良いドキュメント 。
しかし、欠点もあります:
- 過去30分間誰も使用しなかった場合、無料サービスは「眠りに落ちる」。 これは、この状況が発生する可能性があることを意味します。サイトにアクセスすると、代わりにサービスの標準ページが表示され、待機するように求められます。 しばらくすると(最大数分)、サービスが「起動」し、必要に応じて動作を開始します。
- デフォルトのバージョンは
node 0.4.10
です。 しかし、それは修正することができます。
警告:以下は、 公式ドキュメントの短い要約です。 もちろん、フルバージョンを読むことをお勧めします。規約
DotCloudを使用する場合、
アプリケーションという用語は、使用する
サービスのコレクションを意味します。 サービスは、単一のnode.jsプロセス(php、python、rubyなど)または単一のデータベースインスタンスです。 たとえば、phpおよびmysqlサービスから、ワードプレスブログアプリケーションを作成できます。
サイトに登録すると、[設定]セクションに、いわゆる
APIキー (ランダムに生成された文字と数字のシーケンス)が表示されます。 将来的には、このプラットフォームで作業する必要があります。
DotCloudでのすべてのアクションは、特別な
dotcloud
ユーティリティを使用して実行されます(ドキュメントでは、
dotcloud
コマンドラインインターフェイスと呼ばれます)。
CLIインストール
CLIは Python
で書かれており、EasyInstallパッケージマネージャーを使用する
ため、最初に
インストールする必要があります。
sudo apt-get install python-setuptools python-dev build-essential
そして
sudo easy_install pip && sudo pip install dotcloud
その結果、
dotcloudユーティリティがシステムに表示されます。 最初の起動時に、
APIキーを入力する必要があります。
アプリケーションのインストール
最も簡単なサンプルアプリケーションは、
ここにあり
ます 。 しかし、それは何もしないため、特に興味深いものではありません。
ソースの準備
既に何らかの種類のnode.jsアプリケーションが動作しているとしましょう。 この
記事の
例を使用できます。 1つの変更を行う必要があります
。dotCloudアプリケーションはポート8080でリッスンする必要があり
ます 。 展開後、通常どおりポート80で使用可能になりますが、ソースでは正確に8080になります。
アプリケーションの説明
デプロイするには、ファイルシステム上の3つのファイル、
dotcloud.yml
、
supervisord.conf
、および
package.json
を作成して、適切な場所に配置する必要があります。 結果は次の構造になります。
ninja_on_dotcloud/ |_ dotcloud.yml |_ ninja-store/ |_ supervisord.conf |_ package.json |_ app.js |_ ...
dotcloud.yml
ファイルは、アプリケーションが使用するサービスのセットを記述しています。 サービスが1つあるため、
dotcloud.yml
は次のようになります。
www: type: nodejs approot: ninja-store
ここで、
www
はサービスの名前(理論的には何でもかまいません)、
ninja-store
はソースフォルダーです。
supervisord.conf
も簡単です。
[program:node] command = node app.js directory = /home/dotcloud/current
この場合、
app.js
がアプリケーションのメインファイルです。
package.jsonは標準の
npmファイルです。 dotCloudに配置する場合、
依存関係セクションのみが重要であり、アプリケーションで使用されるパッケージがリストされます。
展開
これらすべてをサーバーに送信するには、2つのコマンドを実行する必要があります。
最初にアプリケーションを作成します
dotcloud create -f sandbox nstore
-f
は、
アプリケーションのフレーバー (大まかに言えば、料金プランとホスティングオプション)を設定します。
nstore
はアプリケーションの名前であり、さらなる管理に必要です。
最後に、サイトのコードをサーバーに送信します
dotcloud push nstore ./ninja_on_dotcloud
その結果、すべてがうまくいけば、コンソールにアプリケーションが利用可能になるアドレスを書き込みます。 私の場合、これは
http://nstore-beardog.dotcloud.com/です。 このURLを形成するルールは変更される可能性があります。1年前にランダムな文字列が生成されたばかりで、アプリケーションとアカウントの名前が結合されています。 無料アカウントで独自のドメインを使用することはできません。
悪い場合は、ログを確認する必要があります。
ログを見る
アプリケーションが正常に起動した場合、
コマンドでログを確認できます
dotcloud logs _._
(たとえば、package.jsonで依存関係を指定するのを忘れた場合など)アプリケーションを起動できないことがあります。 次に、非常に切り捨てられた
sshアクセスのようなものを使用する必要があり
ます 。 たとえば、バージョン0.4.10では、express.jsを機能させるために必要な
zlibモジュールが不足していることがわかりました。
user@u5$ dotcloud ssh ninjastore.www
ログファイルの名前は、プラットフォームの新しいバージョンのリリースで変更される可能性があるため、明確な指示を与えることはできません。 ほとんどの場合、
/var/log/
どこかに必要な情報を含むファイルがあります。
ノードの他のバージョンのインストール
このリポジトリで実証されたハックのおかげで、dotCloudにnode.jsの任意のバージョンをインストールできます
必要:
- リポジトリをコピー
- dotcloud.ymlファイルで、
node_version
フィールドに必要なバージョンを指定します - 当然、
hellonode
をソースに置き換えます - 通常どおり
dotcloud push
を実行します。
重要:複製後に.gitフォルダーを削除します。 dotcloudがそれに気付くと、ローカルバージョンを使用する代わりにgithubからソースを取得しようとします。その結果、インストールプロセス中に、
dotcloud
は指定されたバージョンのノードのソースコードをダウンロードして
dotcloud
ます。 次の
push
呼び出しはコンパイルされません。
おそらくログに問題があるので、
このバージョンを試すことができます
別の考えられる問題は、アプリケーションがリッスンするポートです。 何らかの理由で、その例では、次のように設定されてい
ます 。
}).listen(process.env['PORT_WWW'] || 8080);
ご清聴ありがとうございました。 dotcloud、mongodb、nodeに関する別の記事がありました。 そして1年前、同じ名前の
記事がすでにハブに登場しました(残念ながら、私は自分の記事を書いた後で見つけました)