6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Herokuの代わりにFly.ioでrailsをデプロイする。(windows版)

Last updated at Posted at 2022-12-10

諸事情により上記記事を消したため、本記事は再掲したものとなります。

Fly.ioでRailsアプリをデプロイしてみた for Mac

Herokuが11月末から無料で利用できなくなるという事をお聞きしたので、上記記事を参考にwindows版でのリリースを模索した備忘録です。(macの方は上記記事でデプロイできます!)

勉強不足故、お見苦しい箇所もあるかと思いますが温かい目で読んでいただけると幸いです。

手順

1.準備
2.Fly.ioの登録、インストール
3.リリース

1.準備

1-1.powershellの準備

コマンドプロンプトでは一部Fly.ioのコマンドが使えないためPowerShellを利用します。

開き方はキーボードで「Windowsキー」+「R」と打つと検索バーが出てくるので
「PowerShell」と打ち込んでEnterです。
qiita1.png

1-2.アプリのコピーを取る

もしもの時のためにコピーを取っておきましょう

2.Fly.ioの登録、インストール

こちら↓がマニュアルの様です。一応貼っておきます

2-1.Fly.ioのCLIのインストール

Fly.ioのコマンドを使うためにFly.ioのCLI(コマンド使えるようにするアプリ的な物)であるflyctlが必要です。

インストール手順のマニュアルも貼っておきます。

1.PowerShellにて以下のコマンドを打ってください(階層はどこでも👌)

PowerShell
iwr https://fly.io/install.ps1 -useb | iex

数秒待てばダウンロードは終わります。

2.Fly.ioのアカウント作成

※githubで登録するとクレカ情報登録が求められるのでemailで普通に登録するのがおすすめです。
どうやら最近はクレカ登録をほぼ確実に求められるようです。(請求は無料の範囲の利用ならされない)

初めてFly.ioに登録する人はこちら

PowerShell
flyctl auth signup

Fly.ioに登録したことがある人はこちら

PowerShell
flyctl auth login

各々画面の指示に従って進めてください。

3.リリース

ここで取り扱うのは以下の事項です

1.gemのインストール
2.ビルド
3.デプロイ
4.マイグレーションファイルの適用
5.APIキーの登録(必要な場合のみ)
6.再デプロイ(2回目以降のデプロイ)

※ここから自分のアプリの階層で行いましょう!!

※もう一度言います。ここから自分のアプリの階層で行いましょう!!

3-1.gemのインストール

便利になるらしいgemがあるので入れておきます。

PowerShell
gem install fly.io-rails

2023/08/30更新

PC側が重くてリリースが出来ないという知見が散見されます。
PC本体の更新がある人は更新を、無い人も一度再起動することを推奨しておきます!
また、リリースと関係のないブラウザのタブ、アプリ等は閉じておくことを推奨します!

3-2.ビルド

ビルドするためのコマンドをPowerShellに打ち込みます

PowerShell
flyctl launch

Error name argument or flag must be specified when not running interactively
とエラーが出た場合、以下のコマンドを入力してください

PowerShell
flyctl launch --name アプリ名 --region nrt

※アプリ名は英語の小文字 (記号は×、ハイフンは大丈夫)

上記コマンドを使った場合、以下のアプリ名の設定地域の選択はしなくて大丈夫です

アプリ名の設定

PowerShell
Creating app in /Users/ユーザ名/Desktop/アプリ名
Scanning source code
Detected a Rails app
? App Name (leave blank to use an auto-generated name): 

アプリ名を入れてEnterを押してください
※英語の小文字 (記号は×、ハイフンは大丈夫)

地域の設定

PowerShell
Automatically selected personal organization: xxxxx@gmail.com
? Select region:  [Use arrows to move, type to filter]
  cdg (Paris, France)
  dfw (Dallas, Texas (US))
  ewr (Secaucus, NJ (US))
  fra (Frankfurt, Germany)
  gru (São Paulo)
  hkg (Hong Kong, Hong Kong)
  iad (Ashburn, Virginia (US))
  lax (Los Angeles, California (US))
  lhr (London, United Kingdom)
  maa (Chennai (Madras), India)
  mad (Madrid, Spain)
  mia (Miami, Florida (US))
> nrt (Tokyo, Japan)
  ord (Chicago, Illinois (US))
  phx (Phoenix, Arizona (US))

居住地?を聞いてくる画面が出てきます。
大人しくnrt (Tokyo, Japan)を選びます。

Postgresqlを使うか聞かれるので、y を入力します。

PowerShell
? Would you like to set up a Postgresql database now? [yN]

無料アカウントなのでSingle node, 1x shared CPU, 256MB RAM, 1GB diskを選択

デフォルトでは料金がかかるプランにカーソルが合っている場合があるのでしっかりDevelopmentプランを選択しましょう。

PowerShell
? Select configuration:  [Use arrows to move, type to filter]
> Development - Single node, 1x shared CPU, 256MB RAM, 1GB disk
  Production - Highly available, 1x shared CPU, 256MB RAM, 10GB disk
  Production - Highly available, 1x Dedicated CPU, 2GB RAM, 50GB disk
  Production - Highly available, 2x Dedicated CPU's, 4GB RAM, 100GB disk
  Specify custom configuration

5/27追記
最近以下の様な質問が追加されたようです

powershell
? Scale single node pg to zero after one hour? [yN]

こちらはNを選択してください。

3-3.デプロイ

いざデプロイへ
以下のコマンドを入力してください。

PowerShell
flyctl deploy
無事デプロイが完了しました
PowerShell
==> Monitoring deployment

 1 desired, 1 placed, 1 healthy, 0 unhealthy [health checks: 1 total]
--> v0 deployed successfully
3-4.マイグレーションファイルの適用

稀にActiveRecord::StatementInvalid (Could not find table 'users')の様なエラーが発生します。
flyctl deployの処理内でマイグレーションファイルの適用は一応行われていますが、しばしば適用されていない場合にこの様なエラーが発生します。
以下のコマンドを打ち込んでマイグレーションファイルを適用させましょう。

PowerShell
flyctl ssh console -C "app/bin/rails db:migrate"

上記コマンドが上手くかない場合は以下のコマンドを順番に入力してください。

PowerShell
flyctl ssh consoles 
bundle exec rails db:migrate
exit
3-5.APIキーの登録(必要な人のみ)

画像投稿のcloudinaryやグーグルマップのGeocoding APIなど.envファイルでAPIキーを登録している人は以下記事を参考にAPIキーを登録してください。

3-6.再デプロイ

ファイルの編集を加えた後は先程と同様以下のコマンド一つで再デプロイが出来ます。(便利!)

PowerShell
flyctl deploy

最後に

それでは無事リリースできたアプリを見てみましょう!
以下のコマンドで開くことが出来ます。

PowerShell
flyctl open

おまけ デプロイ完了後のエラーetc

We're sorry but something went wrong

デプロイ後に写真のようなエラーがでる場合があります。
qiita3.png

このエラーは開発中のコードに原因があります。
どこにエラーがあるか確認するためにはログを見るコマンドを打ちましょう!

PowerShell
flyctl logs

このコマンドでログを吐いてくれると思うので、しっかり読んでエラー箇所を特定しましょう!

修正したら先ほどと同じく

PowerShell
flyctl deploy

で更新して確認してください!

★fly.ioでseed.rbの内容を反映させたい場合★

PowerShell
flyctl ssh console -C "app/bin/rails db:seed"

こちらも何度か打たないとコマンドが通らない場合があります。

上記で無理な場合以下のコマンドを順番に打ちこんでみてください

PowerShell
flyctl ssh console
cd rails 
bundle exec rails db:seed
exit

参考記事

今回も優秀な先人たちにお世話になりました。
ありがとうございました。

Fly.ioでRailsアプリをデプロイしてみた for Mac
Getting "/usr/bin/env: ruby.exe: No such file or directory" on Heroku

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?