Github Action 배포 오류 - Run pm2 restart ~ pm2: command not found

깃헙으로 워크플로 만들어서 빌드하고 있는 데 이렇게 에러가 났다.

Run pm2 restart /home/runner/work/_temp/c04a9950-215d-4e33-bc1f-adcbbd5ab0b6.sh: line 1: pm2: command not found

여기서 포인트는 pm2: command not found 이다.
분명 pm2 를 글로벌로 설치를 했는데 command가 없다? 라는 말이 이상했다.

🙏 역시 검색해보니 글로벌로 설치하란 글이 나온다. (https://stackoverflow.com/questions/38185590/pm2-command-not-found)

npm install -g pm2

❌ 결과는 당연히 해결되지 않았다. 이미 pm2를 글로벌로 설치해 놓은 걸 기억하고 있었는데 혹시나 해서 다시 해봐도 결과는 바뀌지 않았다.

🙏 그러면서 찾아보니 Linking 작업을 해줘야한단다. (https://stackoverflow.com/questions/69644460/github-actions-pm2-command-not-found)
Linking 작업은 아래와 같이 순서대로 커맨드를 실행하면 된다.

sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/node" "/usr/local/bin/node"
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/npm" "/usr/local/bin/npm"
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/pm2" "/usr/local/bin/pm2"

확인하고 싶으면 whereis pm2 를 실행해서 제대로 작업되었는 지 결과값을 볼 수 있다.

❌ 이렇게 하면 해결될 줄 알았다. 아니였다. 여전히 오류였다.

🙏 다음 해결 방법으로 제안한 것은 svc.sh 를 새로 설치하고 실행하는 것이다. (https://github.com/Unitech/pm2/issues/4989)

sudo ./svc.sh install
sudo ./svc.sh start

❌ 역시나 안된다.


삽질에 삽질을 한 끝에 해결한 방법은 원인이 이 것이였다.

.yml 파일안에 아래와 같이 runs-on 부분을 볼 수 있는데

... (생략)
 build:
    runs-on: ubuntu-latest
... (생략)

바로 이 ubuntu-latest 가 문제였다.
Github Actions의 Runners 에 생성했었는데 그 때 생성한 내용을 넣었어야 했다.

Github 의 저장소에서 Settings - Actions - Runners 를 누르면 생성한 Runner가 있고 그 런너를 누르면 이런식으로 상세를 볼 수 있는데 self-hosted, Linux, X64, 런너이름 이 차례로 버튼으로 만들어져 있다.

그 버튼들을 하나하나 누르면 복사가 된다.

이 내용들은 .yml 파일안에 아래처럼 넣는다.

... (생략)
 build:
    runs-on: [self-hosted, linux, x64, 런너이름]
... (생략)

⭕️ 이렇게 하고 실행했더니 정상 작동 되었다.

물론 위에 과정들이 있었기 때문에 마지막 해결 방법이 적용된 것일 수 있다.

Subscribe
Notify of
guest

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

0 댓글
Inline Feedbacks
View all comments
TOP