ロボット研究開発、ソフトウェア開発、コンテンツ制作配信

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などでラズパイに接続しましょう)

ターミナルで、以下コマンドを入力し、インストールできるリストを確認します。

$ rbenv install –list

なんと、ruby2.5.1がリストにありませんでした。。
いろいろ調べると、ruby-buildが古いようなので、Gitから最新を持ってきます。

$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

再び「rbenv install –list」を実行したら、ruby2.5.1がありました!
ruby2.5.1をインストールします。

$ rbenv install 2.5.1

転送したアプリのディレクトリに移動し、このプロジェクトは、2.5.1を使うように設定します。

$ rbenv local 2.5.1

3.必要なGemパッケージを同期

Bundlerというツールを使えば、MAC内で開発したときと同じGemパッケージを同期することができます。
転送したアプリのディレクトリで以下のコマンドを入力します。

$ bundler install

4.ラズパイでのエラー回避策

前回の記事でも書きましたが、この状態でrailsサーバーを立ち上げるとエラーになってしまうので、
config/boot.rbの以下を削除(コメントアウト)します。

#require ‘bootsnap/setup’ # Speed up boot time by caching expensive operations.

5.別のPCからWebアプリにアクセスしてみる

さっそく以下コマンドでrailsサーバーを起動します。

$ rails s

別のPC or スマホで「http://ラズパイIPアドレス:3000/」にアクセスしてみましょう。
無事に開発したWebアプリが表示されました!!

最後に

いやー、railsアプリをデプロイするのも一苦労です。。
(こうやって手順にまとめると大したことないですが、本当はいろいろ試行錯誤してこの手順にたどり着きました。。)
とりあえず、今回作ったアプリは個人で使うのですが、もう少し改善していろんなノウハウを公開していきたいと思います。
それでは!

スポンサーリンク

いいね!を押すと、
最新記事をお届けします。

Twitter で
関連記事(一部広告含む)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


ページトップボタン