Herokuが有料化するにあたって、Fly.ioでリリースする方向にシフトチェンジしましたが、参考にする記事が多く、一つにまとめたいと思い本記事を作成しました。
初めて記事を書くのでご指摘、アドバイス等ございましたらお願いします。
流れ
- Fly.ioのインストール
- deploy前の準備
- いざdeploy
1.Fly.ioのインストール
リリース作業をする前にローカル環境で、自分の作ったプロダクトにエラーが存在しないことを確認してください。
ありとあらゆるボタンを押して確認してみてください。
また、もしもの時のためにzipファイルをとっておくことをおすすめします。
1-1. PowerShellを開く
windows+Rを押してPowerShellを開いてください。
1-2.インストール
PowerShellが開けたら、階層はどこでもいいので以下のコマンドを打ちましょう。
iwr https://fly.io/install.ps1 -useb | iex
1-3.アカウント作成
初めてFly.ioを使用する場合は
flyctl auth signup
そうするとこのような画面が出てくるので、入力して登録を進めてください。(私はGithubと連携せずに作成しました)
その後クレジットカードを登録する画面が出てくるので登録してください。
現状、クレカを使わない方法が見つからないので登録しないとできなさそうです。(バンドルカードで登録しようと試みましたがダメでした)
このような画面が出てきたら登録したメールアドレスにメールが届いているはずなので、
verify email
を押して登録を完了してください。
既に登録済みの方は
flyctl auth login
を打って指示通りに進んでください。
2.deploy前の準備
ここからはいつも自分が開発をしている階層で作業をしてください!
2-1.gemのインストール
gem install fly.io-rails
2-2.ビルド
ビルドするためのコマンドを入力してください。
flyctl launch --name アプリ名 --region nrt
ここのアプリ名は自分の好きな名前を付けてください。(小文字じゃないとエラーが出ます)
するとPostgresqlデータベースを設定するか聞かれるのでyを押してください。
? Would you like to set up a Postgresql database now? [yN]
無料で利用したいので、一番上の Single node を選択してください。
※人によってはこの画面が出てこないこともあります。
? 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
2-3.seeds.rbを使えるようにする(seedを使用しない人はエラーが出るかもです)
flyctl ssh console -C “app/bin/rails db:seed”
2-4.volume作成
flyctl volumes create ボリューム名 --region nrt
ボリューム名はアプリ名と同じで問題ないです。
2-5.シークレットを設定
flyctl secrets set DATABASE_URL=sqlite3:///mnt/name/production.sqlite
ここのnameも自分のアプリ名に変更してください。
2-6.VSCodeをいじる
①VSCodeのfly.tomlフォルダに以下を追加してください。
[mounts]
source="name"
destination="/mnt/name"
nameが二箇所あるので二箇所とも変更してください。
②fly.rakeフォルダに変更を加えます。
# RELEASE step:
# - changes to the filesystem made here are DISCARDED
# - full access to secrets, databases
# - failures here prevent deployment
- task :release => 'db:migrate'
+ task :release # => 'db:migrate'の部分を削除してください
# SERVER step:
# - changes to the filesystem made here are deployed
# - full access to secrets, databases
# - failures here result in VM being stated, shutdown, and rolled back
# to last successful deploy (if any).
- task :server do
+ task :server => 'db:migrate' do # severとdoの間に => 'db:migrate' を追加してください
sh 'bin/rails server'
end
3.いざdepoly
お疲れさまでした。いよいよdeployです。PowerShellに以下を入力してください。
flyctl deploy
==> Monitoring deployment
1 desired, 1 placed, 1 healthy, 0 unhealthy [health checks: 1 total]
--> v0 deployed successfully
このような画面になればdeploy完了です!
flyctl open
このコマンドを打って実際にリリースしたプロダクトが正常に機能しているか確認してみましょう。
再デプロイしたい場合
再デプロイは非常に簡単で
flyctl deploy
このコマンドをもう一度打てば再デプロイできます。
参考にした記事
今回参考にさせていただいた記事です。