色々知見が溜まってきたので、改めてMacでのデプロイ方法をまとめる。
手順
今回は以下の流れで進める。
1. gemfile, database.yml の編集
2. node のバージョン変更
3. Fly の準備
4. ビルドとデプロイ
gemfileとdatabase.ymlの編集
Flyの準備の前にこちらを行う。
1. gemfile の編集
gemfile
を以下のように書き換える。
- gem 'sqlite3' ~> 1.4
+ #gem 'sqlite3' ~> 1.4
# 割愛
group :development, :test do
gem 'sqlite3' #追記
# 割愛
end
#一番下にまるごと追記
group :production do
gem 'pg'
end
書き換えて保存したら、ターミナルで以下を実行。
$ bundle install --without production
2. database.yml の編集
次に config/datebase.yml
の一番下を以下のように書き換える。
#変更前
production:
<<: *default
database: db/test.sqlite3
#変更後
production:
<<: *default
adapter: postgresql
encoding: unicode
pool: 5
#インデントは必ず半角スペース2つ
ここからはnodeをいじる。
nodeのバージョン変更
まず node -v
を実行。バージョンが18以上でなければこの章は飛ばして構わない。
nodebrewでnodeをインストールするための下準備
homebrewで管理されていたnodeを抜く。
nodeが存在しないなどとエラーが出る場合はそのまま進む。
$ brew uninstall --force node
homebrew で nodebrew をインストール。
$ brew install nodebrew
node のバージョンを切り替える前に以下3つの入力で、 path を通していく
$ mkdir -p ~/.nodebrew/src
$ export PATH=$HOME/.nodebrew/current/bin:$PATH
$ source ~/.bash_profile または ~/.zshrc
nodebrew でダウングレード
次に、node を実際にインストールし、バージョンを切り替える。
切り替える先は18. 未満ならおそらく平気。 まずはインストール。
$ nodebrew install-binary v16.13.1
M1 Macだと15.以下がインストールできないらしいので、16.がいいだろう。
次にバージョンを切り替える。
$ nodebrew use v16.13.1
長かった準備も終わり、ようやく fly の作業に取り掛かる。
Flyの準備
まずFlyのCLIをインストールする。
$ brew install flyctl
次にアカウントを作成する。
$ flyctl auth signup
以降ログインをしたい場合は、
$ flyctl auth login
サインアップできたらクレカの情報を入力する。(現状登録しないとデプロイできない)
また認証メールが来ているはずなので、そちらもやっておこう。
fly launch
に行く前に念のため Docker ファイルを確認しよう。
ARG NODE_VERSION=16.13.1
ARG YARN_VERSION=1.22.18
ここが指定したものになっていればOK
ビルドとデプロイ
ここからターミナルの操作はアプリの階層に移動しておこなうこと。まずはビルド。
ビルド
fly launch
このあと色々聞かれるが、アプリの名前以外はそのまま Enter か y 押して Enter で。
非常に省いたので詳しくは参考記事で。
デプロイ
fly deploy
後は祈る。次のがでればOK
Monitoring Deployment
1 desired, 1 placed, 1 healthy, 0 unhealthy [health checks: 1 total, 1 passing]
--> v0 deployed successfully
fly open
でデプロイしたアプリを開ける。
再デプロイの時にはfly deploy
だけでOK。
参考記事
色々な記事を参考にした。先人達に誠感謝である。
deploy手順
node関係