Heroku CLI
この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。
最終更新日 2023年03月13日(月)
Table of Contents
Heroku Command Line Interface (CLI) を使用すると、Heroku アプリをターミナルから直接、作成および管理できます。Heroku CLI は、Heroku を利用する際に必要なツールです。
Heroku CLI のインストール
前提条件
Heroku CLI には、一般によく使われている Git というバージョン管理システムが必要です。Git がまだインストールされていない場合は、次の手順を完了してください。
インストーラーによるインストール
Windows インストーラーで「Windows によって PC が保護されました」というタイトルの警告が、一部のユーザーに表示される場合があります。この警告が表示されたときにインストールを実行するには、[詳細] をクリックし、発行元が “salesforce.com, inc” であることを確認してから [実行] ボタンをクリックします。
Snap のインストールはサポートされなくなりました。下記の別のインストール方法を使用してください。
tar 書庫によるスタンドアロンインストール
スタンドアロンインストールは、バイナリを使用した単純な tar 書庫です。これは独自の node.js バイナリを含み、自動更新を行います。
CLI を /usr/local/lib/heroku
および /usr/local/bin/heroku
で設定するには、以下のスクリプトを実行します。このスクリプトでは sudo が必要で、Windows に対応していません。
$ curl https://cli-assets.heroku.com/install.sh | sh
また、下記のいずれかの tar 書庫をダウンロードして、自分で展開することもできます。
tar 書庫
これらの tar 書庫は gz
または xz
圧縮で使用できます。xz
は非常に小さくなりますが、gz
は互換性が高くなります。
Ubuntu / Debian apt-get でのインストール
$ curl https://cli-assets.heroku.com/install-ubuntu.sh | sh
このバージョンでは、自動更新を行いません。apt-get
を使用して手動で更新してください。CLI の自動更新バージョンにはスタンドアロンインストールを使用します。
Arch Linux のためのインストール
コミュニティによってメンテナンスされている heroku-cli 7.60.1-1 をインストールします。
$ yay -S heroku-cli
npm でのインストール
CLI は Node.js でビルドされ、npm
を介してインストールできます。この手動インストール方法は、自動更新が理想的ではない環境や、Heroku が事前ビルドされた Node.js バイナリを提供していない環境で使用してください。ARM および BSD では、このインストール方法を使用する必要があります。node
と npm
がすでにインストールされている必要があります。この方法は、テスト済みのスクリプトで行うように、CLI の更新をきめ細かく制御する場合にも役立ちます。
可能であれば他のいずれかのインストール方法を使用することを強くお勧めします。
このインストール方法では、自動更新を行いません。また、システムのバージョンの Node.js を使用する必要がありますが、このバージョンは、Heroku が開発した CLI の対象のバージョンよりも古い可能性があります。Heroku は最新のリリースの Node.js を使用し、古いバージョンをサポートしません。
他のどのインストール方法を使用する場合でも、適切なバージョンの Node.js が含まれており、システム上の他のどのバージョンとも競合しません。
また、この方法は他の方法とは異なり依存関係に yarn ロックファイルを使用しません (yarn でインストールする場合でも)。この方法では、マイナーまたはパッチリリースで CLI の依存関係の互換性がなくなった場合に、問題が生じる可能性があります。
$ npm install -g heroku
インストールの検証
CLI インストールを検証するには、heroku --version
コマンドを使用します。
$ heroku --version
heroku/7.0.0 (darwin-x64) node-v8.0.0
この出力は heroku/x.y.z
のように見えます。その出力は表示されないが、Heroku CLI をインストールしている場合は、システム上に古い heroku
gem が存在するかどうかを確認します。これらの手順を使用してアンインストールしてください。
Heroku CLI の開始
CLI をインストールした後、heroku login
コマンドを実行します。いずれかのキーを入力し、Web ブラウザに移動してログインを完了します。続いて CLI から自動的にログインします。
$ heroku login
heroku: Press any key to open up the browser to login or q to exit
› Warning: If browser does not open, visit
› https://cli-auth.heroku.com/auth/browser/***
heroku: Waiting for login...
Logging in... done
Logged in as me@example.com
CLI を使用して資格情報を入力する場合、heroku login -i
をします。
多要素認証を有効にしている場合、検証について Web ブラウザへ技術的に依存するため、-i
オプションを使用できません。
$ heroku login -i
heroku: Enter your login credentials
Email: me@example.com
Password: ***************
Two-factor code: ********
Logged in as me@heroku.com
CLI は、将来使用できるように、メールアドレスと API トークンを ~/.netrc
に保存します。詳細については、「Heroku CLI Authentication」(Heroku CLI 認証) を参照してください。
これで、最初の Heroku アプリを作成する準備ができました。
$ cd ~/myapp
$ heroku create
Creating app... done, ⬢ sleepy-meadow-81798
https://sleepy-meadow-81798.herokuapp.com/ | https://git.heroku.com/sleepy-meadow-81798.git
最初のアプリのデプロイの包括的な概要については、ご希望の言語のスターターガイドを確認してください。コマンドの完全なリストについては、Heroku CLI コマンドを参照してください。
最新の状態の維持
Debian/Ubuntu パッケージをインストールした、または npm install
を使用した場合以外は、Heroku CLI はそれ自体とそのプラグイン (リンク先のプラグインを除く) を自動的に最新の状態に保ちます。
heroku
コマンドを実行すると、バックグラウンドプロセスによって CLI の最新の使用可能バージョンが確認されます。新しいバージョンが見つかると、ダウンロードされ、~/.local/share/heroku/client
に保存されます。このバックグラウンドチェックは最大 4 時間ごとに 1 度行われます。
heroku
バイナリは、元々インストールされていたクライアントを使用する前に、~/.local/share/heroku/client
の最新のクライアントをチェックします。
最新リリースの SHA
Darwin
Linux
Windows
有用な CLI プラグイン
CLI プラグインを使用すると、CLI インストールを拡張できます。heroku plugins:install someplugin
で CLI プラグインをインストールします。プラグイン管理の詳細については、「Using CLI Plugins」(CLI プラグインの使用) を参照してください。
有用なプラグインをいくつか示します。
- api — アドホックな API リクエスト (
heroku api GET /account
など) を作成します。 - free - 無料の dyno、無料の Heroku Postgres、または無料の Heroku Data for Redis プランを使用するすべてのアプリを検索します。
- heroku-builds — ビルドを表示し、ビルドキャッシュをパージし、tar 書庫からビルドを作成します。
- heroku-repo — アプリの Heroku Git リポジトリを操作するためのコマンド。
- heroku-pg-extras — 追加の
heroku pg:*
コマンドを提供します。 - heroku-slugs — アプリ slug をダウンロードします。
- heroku-kafka — Heroku Kafka を管理します。
- heroku-guardian - アプリ、領域、ユーザーの保護に役立つ Heroku 内のさまざまな設定を表示します。
- heroku-papertrail — Papertrail でログを表示、末尾監視、および検索します。
- advanced-scheduler — Advanced Scheduler トリガーを作成して管理します。
- heroku-cron — 対話型コマンドラインを使用して、またはデプロイ後のスクリプトでマニフェストファイルを使用して Cron To Go ジョブを作成、管理、監視します。
- borealis-pg — Borealis Isolated Postgres アドオンとの高度な対話を可能にします。
CLI アーキテクチャ
Heroku CLI は、Heroku/Salesforce 内で開発された Open CLI Framework (oclif) でビルドされます。oclif は、開発者が大型または小型の CLI をビルドするためのフレームワークとして使用できます。フレームワークには、CLI ジェネレーター、ドキュメント自動作成、テストインフラストラクチャが含まれます。
Heroku CLI のコードはオープンソースでもあります。Node.js や他の依存関係を実行する必要はありません。Debian/Ubuntu パッケージをインストールしたり、npm install
を使用したりする場合以外は、CLI には、他のアプリケーションと競合しない独自の Node.js バイナリが含まれます。
Heroku CLI のトラブルシューティング
CLI に問題が生じている場合は、最新バージョンを使用していることを確認します。使用していない場合は、heroku update
で更新してみてください。
すべてのインストール方法が heroku update
をサポートしているわけではありません。
apt
で CLI をインストールした場合は、sudo apt-get update && sudo apt-get upgrade heroku
を使用する必要があります。npm
またはyarn
で CLI をインストールした場合は、npm upgrade -g heroku
またはyarn global upgrade heroku
を使用する必要があります。
CLI が更新できない場合、アンインストールしてから再インストールしてみてください。which heroku
または where heroku
(Windows の場合) を使用して heroku
コマンドが示しているものを確かめることによって、従来の Heroku Toolbelt または Heroku Ruby gem がインストールされていないことを確認します。一部のユーザーは PATH
を変更して指定する必要があります (ほとんどのインストール環境では /usr/local/bin/heroku
)。
引き続き問題が発生する場合は、次のデバッグ環境変数を設定し、診断に役立ててください。
環境変数 | 説明 |
---|---|
HEROKU_DEBUG=1 |
Heroku API インタラクションに主に関連したデバッグ情報を表示します |
HEROKU_DEBUG_HEADERS=1 |
HEROKU_DEBUG=1 と一緒に、HTTP ヘッダーを表示します |
DEBUG=* |
冗長なデバッグ情報を表示します |
オペレーティングシステムに応じて次の場所のいずれかに保存された CLI のエラーログファイルもチェックできます。
OS | 場所 |
---|---|
macOS | ~/Library/Caches/heroku/error.log |
Windows | %LOCALAPPDATA%\heroku\error.log |
Linux/その他 | ~/.cache/heroku/error.log (または設定されている場合は XDG_CACHE_HOME ) |
問題の発生が続き、CLI が最新の場合、またはその他の理由で更新が失敗した場合、ユーザーディレクトリを削除することよって、CLI をリセットできます。これらのディレクトリは自動的に置き換えられます。これらを削除してもログアウトされませんが、インストールしたプラグインが失われます。
まず、確実に再インストールできるように、heroku plugins
を実行してインストールしたプラグインを一覧表示します。
続いて次のディレクトリを削除します。
Windows:
%LOCALAPPDATA%\heroku
macOS/Linux/その他:
~/.local/share/heroku
(または設定されている場合はXDG_DATA_HOME
)- macOS では
~/Library/Caches/heroku
、Linux/その他では~/.cache/heroku
(または設定されている場合はXDG_CACHE_HOME
)
ログインの問題
ログインに問題が発生している場合は、.netrc
ファイルを移動してみてください。このファイルは、CLI が証明書を保存する場所です。
$ mv ~/.netrc ~/.netrc.backup
$ heroku login
Windows では、ファイルに _netrc
という名前が付けられます。
Homebrew 固有の問題
最新の Homebrew バージョンの heroku
をインストールしていても、従来の警告が表示された場合、PATH
環境変数内のバイナリ heroku
コマンドが、brew がインストールしたバージョンを示していません。
まず、which heroku
を実行して、バイナリ heroku
が示しているものを表示します。これが /usr/local/bin/heroku
でない場合、示しているバイナリを削除します。~/.bashrc
ファイルまたは同等のファイルを変更することにより、PATH
環境変数内で /usr/local/bin/
をさらに上位にすることもできます。
次に brew link --overwrite heroku
を実行して、/usr/local/bin/heroku
が新しい CLI を示していることを確認します。トラブルが続く場合、システムの問題を示す brew doctor
を実行します。
Apple シリコンの問題
Apple M1 チップを搭載したマシンで次のエラーが発生する場合、Rosetta 2 がインストールされていないか、インストールが拒否されています。
Bad CPU type in executable
Rosetta 2 をインストールすると、この問題が解決します。
Rosetta 2 をマシンにインストールしたくない場合、Heroku npm パッケージをグローバルにインストールして、独自の Node バイナリをローカルで使用することができます。Node の v16 のみが M1 ARM をサポートしており、npm は推奨されるインストール方法ではありません。
Heroku CLI のアンインストール
このアクションにより、すべての CLI プラグインも削除されます。
macOS
macOS で、次のように入力して CLI をアンインストールできます。
$ rm -rf /usr/local/heroku /usr/local/lib/heroku /usr/local/bin/heroku ~/.local/share/heroku ~/Library/Caches/heroku
Homebrew のインストール
Homebrew を使用して Heroku CLI をインストールした場合、次のように入力して CLI をアンインストールできます。
$ brew uninstall heroku
$ rm -rf ~/.local/share/heroku ~/Library/Caches/heroku
Linux
スタンドアロンインストール
スタンドアロンインストールの場合、次のように入力して CLI をアンインストールできます。
$ rm /usr/local/bin/heroku
$ rm -rf /usr/local/lib/heroku /usr/local/heroku
$ rm -rf ~/.local/share/heroku ~/.cache/heroku
Debian および Ubuntu のインストール
Debian/Ubuntu の場合、次のように入力して CLI をアンインストールできます。
$ sudo apt-get remove heroku heroku-toolbelt
$ sudo rm /etc/apt/sources.list.d/heroku.list
$XDG_DATA_HOME
や $XDG_CACHE_HOME
がある場合、~/.local/share
と ~/.cache
の代わりにこれらの変数を使用します。
次のコマンドを実行することでリリースキーを削除できます。
$ sudo apt-key list
$ sudo apt-key del KEYFROMABOVE
Windows
Windows で、Heroku CLI をアンインストールするには次の手順を実行します。
Start > Control Panel > Programs > Programs and Features
(スタート > コントロールパネル > すべてのプログラム > プログラムと機能) をクリックします。Heroku CLI
(Heroku CLI) を選択してから、Uninstall
(アンインストール) をクリックします。(アンインストーラーが署名されていないことに注意してください)。
Windows アンインストーラーは CLI と一緒に自動的に更新されません。初めて CLI をインストールしてから日数が経過している場合、最新バージョンの CLI を手動でインストールして、最新のアンインストーラーを入手します。
アンインストールがうまくいかない場合、Program Files 内のディレクトリと一緒に %LOCALAPPDATA%\heroku
を手動で削除してください。
従来の Heroku gem のアンインストール
実行可能ファイルの場所を見つけるには、which
を実行します。
$ which heroku
/usr/local/heroku/bin/heroku
heroku
コマンドへのパスは Ruby gem ディレクトリにしないでください。
そのようになっている場合、これと他のすべての heroku
gem をアンインストールします。
$ gem uninstall heroku --all