Docker를 사용할 때 컨테이너당 하나의 프로세스를 따라가도록 노력해야 합니다 그런데 노드가 멈춘다면 어떻게 해야 할까요? 컨테이너에서 Pm2를 사용하려고 했으나 컨테이너가 오자마자 종료되었습니다. docker 컨테이너는 프로세스가 하나 이상 있는지 확인해야 합니다. 그렇지 않으면 종료됩니다. 그런데 왜 pm2를 사용할 수 없나요? pm2를 사용할 수 없다면 항상 docker run restart로 해결할 수 있나요? ?
pm2를 docker에서 사용하는 경우 pm2 명령을 pm2-docker 명령으로 변경해야 포그라운드에서 실행될 수 있습니다. 그리고 개인적으로는 docker에서 pm2를 사용할 필요가 없다고 생각합니다. node 프로세스가 멈추면 해당 컨테이너도 실행이 중지되므로 docker 컨테이너를 시작할 때 restart=always 매개변수를 추가하면 자동으로 다시 시작됩니다
pm2를 docker에서 사용하는 경우 pm2 명령을 pm2-docker 명령으로 변경해야 포그라운드에서 실행될 수 있습니다. 그리고 개인적으로는 docker에서 pm2를 사용할 필요가 없다고 생각합니다. node 프로세스가 멈추면 해당 컨테이너도 실행이 중지되므로 docker 컨테이너를 시작할 때 restart=always 매개변수를 추가하면 자동으로 다시 시작됩니다
pm2 공식 웹사이트의 docker 통합 문서를 참고하세요
pm2가 포그라운드에서 실행되고 있는지 확인해야 합니다. 즉, dockerfile의 CMD 또는 ENTRYPOINT에서 시작된 프로세스는 데몬 모드에서 실행될 수 없습니다.
컨테이너를 실행할 때 사용할 CPU 코어 수를 지정할 수 있습니다. 코어를 하나만 할당하면 CPU의 기본 스케줄링 단위가 스레드 전용이므로 여러 Node.js 프로세스를 시작할 필요가 없습니다. 하나의 코어는 하나의 Node.js 프로세스를 실행하는 것을 의미합니다