Ruby on Railsで作成したWebアプリをRaspberryPi3 B+にデプロイする
こんにちは、koheiです。
年末からRuby on Railsをずっと勉強していて、小規模(個人的)Webアプリを作ったので、RaspberryPiへデプロイする方法の備忘録です。
目次
やりたいこと
Railsの開発自体は作業用PCのMacで開発していました。
しかし、実際の運用では、家庭内のPCからWebアプリにアクセスしたいため、家庭用サーバーとして稼働中のラズパイにデプロイして動かすことを目指しました。
ちなみに、ラズパイ上にはRuby on Railsの環境自体は構築済みです。以下記事を参考にしてください。
1.アプリケーションをラズパイへコピー
MACで開発したRailsアプリケーションをラズパイの環境に転送します。
転送ソフトは「CyberDuck」を使いました。
※Windowsであれば、WinSCPがいいと思います。
転送プロトコル:SFTP、サーバー:ラズパイのIPアドレス、ユーザー名、パスワード等を入力して、「接続」をクリックします。
接続できたら、開発したRailsのアプリをラズパイの環境下へ転送します。
2.rubyのバージョンをあわせる
MAC側のRubyのバージョンが2.5.1、ラズパイ側が、2.4.0だったので、ラズパイ側にruby2.5.1をインストールしました。
以下、ラズパイ側の操作です。(ssh or VNCなどでラズパイに接続しましょう)
ターミナルで、以下コマンドを入力し、インストールできるリストを確認します。
なんと、ruby2.5.1がリストにありませんでした。。
いろいろ調べると、ruby-buildが古いようなので、Gitから最新を持ってきます。
再び「rbenv install –list」を実行したら、ruby2.5.1がありました!
ruby2.5.1をインストールします。
転送したアプリのディレクトリに移動し、このプロジェクトは、2.5.1を使うように設定します。
3.必要なGemパッケージを同期
Bundlerというツールを使えば、MAC内で開発したときと同じGemパッケージを同期することができます。
転送したアプリのディレクトリで以下のコマンドを入力します。
4.ラズパイでのエラー回避策
前回の記事でも書きましたが、この状態でrailsサーバーを立ち上げるとエラーになってしまうので、
config/boot.rbの以下を削除(コメントアウト)します。
5.別のPCからWebアプリにアクセスしてみる
さっそく以下コマンドでrailsサーバーを起動します。
別のPC or スマホで「http://ラズパイIPアドレス:3000/」にアクセスしてみましょう。
無事に開発したWebアプリが表示されました!!
最後に
いやー、railsアプリをデプロイするのも一苦労です。。
(こうやって手順にまとめると大したことないですが、本当はいろいろ試行錯誤してこの手順にたどり着きました。。)
とりあえず、今回作ったアプリは個人で使うのですが、もう少し改善していろんなノウハウを公開していきたいと思います。
それでは!
スポンサーリンク