당신이 몇 가지 질문,하려고 그 대답을 아래:
1. 그것은 좋은 아이디어를 넣어 내 응용 프로그램 중 하나에서 컨테이너?
그것에 따라,많은 경우가 있습니다 왜 당신을 실행하는 동일한 컨테이너 하는 여러 개의 것들입니다. 하지만 정말에 따라 CPU/RAM/의 메모리 사용량이 작업입니다. 고 얼마나 자주하는 그것을 실행하는가?
어쨌든 경험에서 나는 말할 수 있는 실행하는 경우 cronjob 에서 동일한 컨테이너,나는 항상 사용 작업자의 접근을 위해 이 중 하나를 사용하여 코어 및 라이브러리 worker_threads
나 cluster
모듈입니다. 기 때문에 당신이 원하지 않는 cronjob 영향 행동의 메인 스레드가 있습니다. 나의 예를 실행하 2 응용 프로그램에서 여러 스레드에 다음과 같은 repo.
2. 해야 난 그냥 도랑을 도커 및 실행 프로그램에서는 네이티브 리눅스의 내 ec2
Docker 및 PM2 는 2 정말 다른 것입니다. Docker 은 기본적으로 containerize 의 전체 노드 응용 프로그램,그래서 그것은 훨씬 쉽게 우주선니다. PM2 프로세스 관리자를 위한 노하고 귀하의 응용 프로그램과 함께 몇 가지 좋은 메트릭하고 로그에 UI PM2 줍니다. 할 수 있는 확실히 사용하여 2 으로 함께 PM2 게도 확 응용 프로그램이 시작한 후에 충돌.
그러나 사용하는 경우,pm2 를 사용해야 합 pm2-런타임 을 사용할 때 docker. 예능:
FROM node:16.9.0
WORKDIR /home/usr/app
COPY . .
RUN npm ci && npm run build
# default command is starting the server
CMD ["npx", "pm2-runtime", "npm", "--", "start"]