Conteneur Docker et PM2 runnng en instance ec2

0

La question

J'ai un ec2 qui est en cours d'exécution d'un nœud de l'application. Je suis la pensée de faire un conteneur de mise en œuvre à l'aide de docker. Le pm2, est l'exécution de deux applications l'une est le véritable nœud de l'application (express et carlin) et une tâche cron à l'aide de l'ordre du jour. Est-ce une bonne idée de mettre mes applications dans un conteneur?

Je ne suis pas encore familier avec les avantages et les inconvénients de cette situation et j'ai lu que le panneau est déjà un gestionnaire de processus. Comment les pm2 ajustement dans tout cela une fois que j'ai la mettre en œuvre. Ou devrais-je simplement fossé docker et d'exécuter les applications du natif de linux de mon ec2.

amazon-ec2 docker node.js pm2
2021-11-23 22:13:26
1

La meilleure réponse

2

Vous avez un couple de questions, je vais essayer d'y répondre ci-dessous:

1. Est-ce une bonne idée de mettre mes applications dans un conteneur?

Ça dépend, il y a de nombreux cas pourquoi vous souhaitez exécuter le même conteneur de faire de multiples choses. Mais cela dépend vraiment de la CPU/RAM/Mémoire d'utilisation de l'emploi. Et combien de fois est-il exécuté?

De toute façon à partir de l'expérience je peux dire que si j'exécute une tâche cron dans le même contenant, je serais toujours utiliser un travailleur pour cette approche en utilisant soit NodeJS cœurs worker_threads ou cluster le module. Parce que vous ne voulez pas qu'une tâche cron impacts sur le comportement du thread principal. J'ai un exemple d'exécution de 2 applications sur plusieurs threads dans la suite de pensions de titres.

2. dois-je simplement fossé docker et d'exécuter les applications du natif de linux de mon ec2

Docker et PM2 sont 2 vraiment des choses différentes. Docker est essentiel de placer l'ensemble de votre Nœud de l'application, de sorte qu'il est beaucoup plus facile pour l'expédier. PM2 est un gestionnaire de processus par nœud et s'assure que votre application est en place et est livré avec quelques belles métriques et les journaux de l'INTERFACE utilisateur sur les PM2 métriques. Vous pouvez certainement utiliser les 2 ensemble, comme PM2 rend aussi sûr que votre application va démarrer après il se bloque.

Toutefois, si vous utilisez les pm2, vous devez utiliser les pm2 d'exécution lors de l'utilisation de docker. Exemple Dockerfile:

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"]
2021-11-23 22:58:58

Merci beaucoup pour la réponse. La tâche cron ne fonctionne que lors de minuit, donc il ne devrait pas l'impact de l'application principale. Je vais regarder dans les pm2-runtime comme j'ai vraiment envie de mettre en œuvre docker. Je suppose que la prochaine chose pour moi est de comprendre comment faire tout cela dans la construction du pipeline peut-être à l'aide de Jenkins.
cam

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................