Github Actions pm2: command not foundの解決方法【2025年最新版】
エラーの概要・症状
Github Actionsでの開発環境において、pm2: command not found
というエラーメッセージが表示されることがあります。このエラーは、CI/CDパイプラインの実行中にpm2
コマンドが見つからないために発生します。具体的には、Github Actionsがジョブを実行する際に、必要なコマンドやツールがインストールされていないか、パスが設定されていない場合にこのエラーが発生します。
このエラーが発生すると、デプロイやテストの自動化が失敗し、開発フローが中断されてしまいます。特に、pm2
はNode.jsアプリケーションのプロセスマネージャとして広く使用されているため、その利用が前提となっているプロジェクトでは大きな問題となります。
このエラーが発生する原因
pm2: command not found
エラーの原因は主に以下の3つです。
- pm2がインストールされていない: Github Actionsの環境に
pm2
がインストールされていない場合、当然コマンドが見つからずエラーが発生します。 -
パスが設定されていない:
pm2
がインストールされていても、その実行ファイルのパスが環境変数PATH
に含まれていない場合、コマンドが見つからないというエラーになります。 -
working-directoryの設定ミス: Github Actionsでは、ジョブを実行するディレクトリを
working-directory
で指定できます。この設定が誤っていると、pm2
が正しく参照できず、エラーが発生します。
これらの原因を理解することで、適切な対策を講じることができます。
解決方法1(最も効果的)
手順1-1(具体的なステップ)
最初に、pm2
をGithub Actionsの環境にインストールします。以下のように、npm install pm2 -g
コマンドを使用してグローバルにインストールします。これをGithub Actionsのワークフローファイルに追加します。
name: CI
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install PM2
run: npm install pm2 -g
- name: Start Application
run: pm2 start app.js
手順1-2(詳細な操作方法)
上記のコードを.github/workflows/your-workflow.yml
に追加した後、Github Actionsを再実行します。これにより、pm2
がインストールされるため、pm2
コマンドが使用可能になります。これにより、エラーが解消されるはずです。
手順1-3(注意点とトラブルシューティング)
- **確認**:
pm2
が正しくインストールされたか確認するため、pm2 --version
を実行してバージョンを表示させることをおすすめします。 - **パスの確認**: もしインストール後もエラーが発生する場合、
which pm2
コマンドを実行し、pm2
のパスを確認してください。
解決方法2(代替手段)
pm2
をインストールしてもエラーが解消されない場合、次に考慮すべきはworking-directory
の設定です。以下のようにdefaults
を使用して、全てのステップでworking-directory
を指定します。
name: CI
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./app
steps:
- uses: actions/checkout@v2
- name: Install PM2
run: npm install pm2 -g
- name: Start Application
run: pm2 start app.js
この設定により、全ての実行が./app
ディレクトリ内で行われるため、pm2
が正しく参照されるようになります。
解決方法3(上級者向け)
より技術的なアプローチとしては、特定の環境変数を設定することが考えられます。以下は、GITHUB_PATH
を利用してパスを追加する方法です。
name: CI
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Add PM2 to PATH
run: echo "$(npm bin -g)" >> $GITHUB_PATH
- name: Install PM2
run: npm install pm2 -g
- name: Start Application
run: pm2 start app.js
この方法により、pm2
のインストールパスが自動的に環境変数に追加され、エラーが回避できる可能性が高まります。
エラーの予防方法
- **定期的な依存関係の確認**: プロジェクトの依存関係を定期的に確認し、
pm2
などの必要なツールが適切にインストールされていることを確認します。 - **CI/CDパイプラインのテスト**: 本番環境にデプロイする前に、開発環境で必ずCI/CDパイプラインをテストし、エラーが発生しないことを確認します。
関連するエラーと対処法
- **npm: command not found**:
npm
コマンドが見つからないエラーについても、同様にインストールやパスの設定が必要です。 - **node: command not found**: Node.js自体がインストールされていない場合もあるため、Node.jsのインストールを確認する必要があります。
まとめ
今回紹介したpm2: command not found
エラーの解決方法は、Github Actionsでの開発において非常に重要です。pm2
を適切にインストールし、環境変数の設定を確認することで、エラーを解消できます。今後の開発に役立てていただければ幸いです。
コメント