Github Actions pm2: command not foundの解決方法【2025年最新版】

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つです。

  1. pm2がインストールされていない: Github Actionsの環境にpm2がインストールされていない場合、当然コマンドが見つからずエラーが発生します。

  2. パスが設定されていない: pm2がインストールされていても、その実行ファイルのパスが環境変数PATHに含まれていない場合、コマンドが見つからないというエラーになります。

  3. 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を適切にインストールし、環境変数の設定を確認することで、エラーを解消できます。今後の開発に役立てていただければ幸いです。

コメント

タイトルとURLをコピーしました