CI/CD 를 구성해 놓고 개발자들이 열심히 개발하던 중 node 버전도 올려서 개발을 업그레이드 했다면 당연히 CI/CD로 구성해 놓은 인프라도 수정해야 한다.
기존에는 node 18.x 로 개발하였고 시간이 많이 흘러 이번 업데이트에는 node 20.9.0 으로 셋팅하고 next.js 를 개발하였다.
아래 설명들의 AWS EC2 ubuntu 환경이다.
이 상태로 yarn start에서 아래처럼 오류를 노출한다.
You are using Node.js 18.16.1. For Next.js, Node.js version "^18.18.0 || ^19.8.0 || >= 20.0.0" is required.
이렇기 때문에 CI/CD 를 구성한 마지막 단계에서 pm2 동작 시 오류가 발생한다.
이제 node 를 업데이트 한다.
nvm을 이용해서 기존에 설치했기 때문에 nvm use 20.9.0 을 하면 되지만 해당 버전은 설치하지 않았었기 때문에 해당 버전을 설치한다.
nvm install 20.9.0
그리고 해당 버전의 노드로 사용한다고 명령어를 친다.
nvm use 20.9.0
제대로 해당 버전으로 설치 되었는 지 node -v 를 이용해서 확인한다.
그러나 이 상태로 yarn start 를 실행하게 되면 아래처럼 오류가 난다.
Command 'yarn' not found, but can be installed with: sudo apt install cmdtest
그렇기 때문에 yarn 을 global 로 설치해 준다.
npm install -g yarn
이 상태에서 만약 여러개의 pm2를 구동시켜 하나의 서버에 여러 웹어플리케이션을 구동시키고 yarn이 폴더마다 버전이 다르다면 해당 폴더에 yarn 버전을 설정한다.
yarn set version 4.5.1
이렇게 했는데 yarn -v 를 했을 때 기존 버전으로 나오고 있다면 상위 폴더로 가서 .yarn 과 .yarnrc.yml 가 있는 지 확인한다.
yarn을 다르게 설정하는 폴더마다 있어야 하는데 상위 폴더에 있다면 그 상위 폴더에 있는 .yarn 안의 release 로 가져올 수 있다.
나 같은 경우는 상위 폴더의 .yarn 과 .yarnrc.yml 을 백업해두고 지웠다. 꼭 백업해 두어야 한다. 이게 해결 방법이 아닐 수 있기 때문이다.
🙏 이제 다시 yarn -v를 하면 원하는 버전으로 설정되어 있고 node -v를 하면 원하는 버전으로 설정되었기 때문에 pm2도 정상 작동한다.