9
4

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.

GeekSalonAdvent Calendar 2022

Day 23

Fly.ioでリリースする(for Windows)

Last updated at Posted at 2022-11-30

Herokuが有料化するにあたって、Fly.ioでリリースする方向にシフトチェンジしましたが、参考にする記事が多く、一つにまとめたいと思い本記事を作成しました。
初めて記事を書くのでご指摘、アドバイス等ございましたらお願いします。

流れ

  1. Fly.ioのインストール
  2. deploy前の準備
  3. いざdeploy

1.Fly.ioのインストール

リリース作業をする前にローカル環境で、自分の作ったプロダクトにエラーが存在しないことを確認してください。
ありとあらゆるボタンを押して確認してみてください。
また、もしもの時のためにzipファイルをとっておくことをおすすめします。

1-1. PowerShellを開く

windows+Rを押してPowerShellを開いてください。ファイル名を指定して実行 2022_11_30 10_46_32.png

1-2.インストール

PowerShellが開けたら、階層はどこでもいいので以下のコマンドを打ちましょう。

PowerShell
iwr https://fly.io/install.ps1 -useb | iex
1-3.アカウント作成

初めてFly.ioを使用する場合は

PowerShell
flyctl auth signup

スクリーンショット (129).png
そうするとこのような画面が出てくるので、入力して登録を進めてください。(私はGithubと連携せずに作成しました)

スクリーンショット (128).png
その後クレジットカードを登録する画面が出てくるので登録してください。
現状、クレカを使わない方法が見つからないので登録しないとできなさそうです。(バンドルカードで登録しようと試みましたがダメでした)
スクリーンショット (130).png
このような画面が出てきたら登録したメールアドレスにメールが届いているはずなので、
verify email 
を押して登録を完了してください。

既に登録済みの方は

PowerShell
flyctl auth login

を打って指示通りに進んでください。

2.deploy前の準備

ここからはいつも自分が開発をしている階層で作業をしてください!

2-1.gemのインストール
PowerShell
gem install fly.io-rails
2-2.ビルド

ビルドするためのコマンドを入力してください。

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

ここのアプリ名は自分の好きな名前を付けてください。(小文字じゃないとエラーが出ます)
するとPostgresqlデータベースを設定するか聞かれるのでyを押してください。

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

無料で利用したいので、一番上の Single node を選択してください。
※人によってはこの画面が出てこないこともあります。

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
2-3.seeds.rbを使えるようにする(seedを使用しない人はエラーが出るかもです)
PowerShell
flyctl ssh console -C app/bin/rails db:seed
2-4.volume作成
PowerShell
flyctl volumes create ボリューム名 --region nrt

ボリューム名はアプリ名と同じで問題ないです。

2-5.シークレットを設定
PowerShell
flyctl secrets set DATABASE_URL=sqlite3:///mnt/name/production.sqlite

ここのnameも自分のアプリ名に変更してください。

2-6.VSCodeをいじる

①VSCodeのfly.tomlフォルダに以下を追加してください。

fly.toml
[mounts]
  source="name"
  destination="/mnt/name"

nameが二箇所あるので二箇所とも変更してください。

②fly.rakeフォルダに変更を加えます。

lib/tasks/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に以下を入力してください。

PowerShell
flyctl deploy
PowerShell
==> Monitoring deployment

 1 desired, 1 placed, 1 healthy, 0 unhealthy [health checks: 1 total]
--> v0 deployed successfully

このような画面になればdeploy完了です!

PowerShell
flyctl open

このコマンドを打って実際にリリースしたプロダクトが正常に機能しているか確認してみましょう。

再デプロイしたい場合

再デプロイは非常に簡単で

PowerShell
flyctl deploy

このコマンドをもう一度打てば再デプロイできます。

参考にした記事

今回参考にさせていただいた記事です。

9
4
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
9
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?