この記事は Qiita株式会社のアドベントカレンダー | Advent Calendar 2022 - Qiita 5日目の記事です。
世間的には無料が終了したことで話題のHerokuですが、今回は普通にアップデート関連です。
Qiita社では社内Bot等の小さなアプリケーションにHerokuを利用しているわけですが、一部のアプリケーションがHeroku-18を利用していました。
Heroku-18を使っているアプリケーションは2023年の5月1日で新しくビルドが出来なくなる、ということでアップデートをすることにしました。
アップデート先のスタックにはHeroku-20とHeroku-22が存在し、最新はもちろんHeroku-22なのでそちらに上げたいです。
しかし、アプリケーション側の都合ですぐにはHeroku-22に上げることができなかったので、今回はHeroku-20に上げることを目指します。
最新のスタックに上げる場合
Herokuの管理画面にログインし、扱っているアプリケーションのsettingから上げることができます。(スクショは既に20に上げた後)
最新ではないスタックに上げる場合
1.リポジトリを手元にcloneする
herokuで登録しているリポジトリをまず手元にcloneしましょう。(大抵の場合既にしてると思いますが)
git clone git@github.com:hoge/fuga.git
2.Heroku CLIをインストール
次に、Heroku CLIをインストールします。
今回Macで作業しているので、自分は下記のコマンドで行いましたが、WindowsやLinuxだとまた変わってくると思うので、そちらは公式のヘルプを参照してください。
brew tap heroku/brew && brew install heroku
3.Herokuにコンソールからログイン
コンソールからHerokuにログインしましょう。
heroku login
コマンドを打つと、
heroku: Press any key to open up the browser to login or q to exit:
Opening browser to https://cli-auth.heroku.com/auth/cli/browser/(適当な文字列)?requestor=(適当な文字列)
Logging in...
と出るので、q以外のキーをタイプするとブラウザが立ち上がりログイン画面が開かれます。
その画面からログインすれば、
Logging in... done
Logged in as (あなたのアカウント名)
と表示されると思います。
4.remoteブランチに登録する
下記のコマンドでherokuと手元のgitを関連づけます。
heroku git:remote -a herokuで登録しているアプリケーション名
もし、本番環境とステージング環境がある場合、上記のコマンドで切り替えをしましょう。
5.指定したいスタックをセットする
ここで、指定したいherokuのスタックをセットします。--app
オプションを使うことで4の工程を省略もできますが、今回はあえてこちらで。
ここではまだスタックは変わっておらず、次のデプロイから変わる点に注意しましょう。
heroku stack:set heroku-20
6.プッシュしてデプロイ
最後にmasterブランチやmainブランチなど、デプロイしたいブランチをデプロイして終了です。hogeブランチをデプロイしたい場合は下記。
git push heroku hoge:master
これで、あなたのアプリケーションのスタックはアップデートができているはずです。
まとめ
今回はHerokuを最新じゃないスタックにアップデートする方法を紹介しました。
とはいえ、最新にスッと上げられる方が良いので、アプリケーションの方も最新にして常に新しく保てるようにしたいと思います。