QA@IT

Railsアプリをローカルからローカルへデプロイする方法

2868 PV

個人的に使うちょっとしたウェブアプリを作っています。これまではdevelopmentやproductionなどの環境をすべて同じディレクトリ(rails newで作ったディレクトリ)のまま使っていましたが、 http://qa.atmarkit.co.jp/q/2292 の回答を読むにつれて「developmentとproductionは別の場所で動かすのが普通ではないのか?」と思い始めました。

開発も運用もローカルにある同一のMacで行いたいのですが、Railsのデプロイによく使われるというCapistranoの使い方でググってもローカルとリモートでのやり取りなどがほとんどのため(当たり前か)、どのようにデプロイを行えば良いのかわかりません。そもそもデプロイをしようとしたのが今回が初めてというのもありまして、どこから手をつけて良いのやらという状況です。

最悪単に別のディレクトリにgit cloneしてproduction環境だけの場所を用意しようかとも思っていますが、Railsらしいよりよい方法を知りたいです。また、そのようなことを学べる書籍(電子書籍)やウェブサイトなどもお教えいただけると助かります。

回答

「運用」の部分で利用者が自分だけなのか、他にも多数の人が使うのかで変わってくると思います。

例えば、不特定多数の人が使用するのであれば、開発と運用を同じコードで行うのは大変危険と思います。なぜなら、開発途中のコードの変更が利用している人に影響を与えるからです。自分一人しか使用しないということであれば、同じコードでも問題は無いと思います。

個人的には Web アプリケーションという、一般的には不特定多数に公開する場合が多いという性質から、development と production の環境を分けて開発を進めることをオススメします。

この辺の基礎知識については Deploying Rails にローカルに vm を立ち上げて、そこに対してアプリケーションをデプロイするという一連の流れが書いてありますので、ご参照ください。

編集 履歴 (0)
  • ご回答ありがとうございます。今後のために環境を分ける練習はしていきたいと思います。Deploying Railsの紹介ありがとうございます。参考にします。 -

個人的な利用であれば、現状のままで問題ないのではないでしょうか?
ご認識の通り、環境を分けたい場合に config/database.yml で定義した
環境を利用するというのが一般的です。

ちなみに、Capistrano のデプロイ先をlocal環境にすることも可能ですよ。
単にsshでごにょごにょしてるだけですので。

編集 履歴 (1)
  • ご回答ありがとうございます。現状のままでもOKということで安心いたしました。

    それはそれとしてCapistranoの使い方は学びたいので、機会を見つけてまた調べたいと思います。
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。