May 6, 2011

DotCloudでCGIスクリプトを動かしてみた

DotCloudで少し遊んでみました。

以下はDotCloud上でPerlのCGIスクリプトを動かすまでの手順です。

1. DotCloudのフロントエンドをインストールします。

$ sudo easy_install dotcloud

2. owawaという名前のアプリを作ります。アプリというか、(複数のサービスを束ねる)ネームスペースを予約しているだけのような気がします。

$ dotcloud create owawa
Created "owawa"

3. owawaアプリにcgitestというサービスを追加して、Perlの実行環境をデプロイします。

$ dotcloud deploy -t perl owawa.cgitest
Created "owawa.cgitest".

4. 手元でプログラムを作ります。githubにサンプルを置いておきました。

$ git clone git@github.com:ogawa/dotcloud-cgibin-test.git

肝は2つ。1つはMakefile.PLで下のように依存するモジュールを列挙しておくこと。

    PREREQ_PM => {
        'Plack'              => 0,
        'CGI::Compile'       => 0,
        'CGI::Emulate::PSGI' => 0,
    },

もう1つは、app.psgiの書き方ですね。下はPlack::App::CGIBinのサンプルを参考に、DotCloudで動くように若干修正したものです。

#!/usr/bin/env perl
use strict;
use warnings;

use Plack::Builder;
use Plack::App::CGIBin;

my $basedir = '/home/dotcloud/current';

builder {
    mount "/" =>
      Plack::App::CGIBin->new( root => $basedir, exec_cb => sub { 0 } )->to_app;
};

5. コードをowawa.cgitestサービスにpushします。初回はPlackとかインストールするのでかなり時間がかかります。

$ cd dotcloud-cgibin-test
$ dotcloud push owawa.cgitest .
....
uwsgi: stopped
uwsgi: started
Connection to cgitest.owawa.dotcloud.com closed.

6. hello.cgi にアクセスして正しく返答があればOk。

$ curl http://cgitest.owawa.dotcloud.com/hello.cgi
Hello, world!

About Me

My Photo

つくばで働く研究者

Total Pageviews

Amazon

Copyright 2012 Ogawa::Buzz | Powered by Blogger
Design by Web2feel | Blogger Template by NewBloggerThemes.com