LoginSignup
8
0

More than 1 year has passed since last update.

Herokuで最新ではないスタックにアップデートする

Last updated at Posted at 2022-12-04

この記事は 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に上げた後)

スクリーンショット 2022-12-01 17.51.12.png

最新ではないスタックに上げる場合

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を最新じゃないスタックにアップデートする方法を紹介しました。
とはいえ、最新にスッと上げられる方が良いので、アプリケーションの方も最新にして常に新しく保てるようにしたいと思います。

8
0
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
8
0