Lorsque pm2 est utilisé dans docker, vous devez remplacer la commande pm2 par la commande pm2-docker afin qu'elle puisse s'exécuter au premier plan. Et personnellement, je pense qu'il n'est pas nécessaire d'utiliser pm2 dans Docker. Si le processus du nœud se bloque, le conteneur correspondant cessera également de fonctionner, donc lors du démarrage du conteneur Docker, ajoutez le paramètre restart=always pour le redémarrer automatiquement
Vous devez vous assurer que pm2 s'exécute au premier plan, ce qui signifie que le processus démarré dans CMD ou ENTRYPOINT dans le fichier docker ne peut pas s'exécuter en mode démon
Vous pouvez spécifier le nombre de cœurs de processeur à utiliser lors de l'exécution d'un conteneur. Si vous n'allouez qu'un seul cœur, il n'est pas nécessaire de démarrer plusieurs processus Node.js, car l'unité de planification de base du processeur est uniquement un thread. un noyau signifie exécuter un processus Node.js et c'est tout
Lorsque pm2 est utilisé dans docker, vous devez remplacer la commande pm2 par la commande pm2-docker afin qu'elle puisse s'exécuter au premier plan. Et personnellement, je pense qu'il n'est pas nécessaire d'utiliser pm2 dans Docker. Si le processus du nœud se bloque, le conteneur correspondant cessera également de fonctionner, donc lors du démarrage du conteneur Docker, ajoutez le paramètre restart=always pour le redémarrer automatiquement
Vous pouvez vous référer à : la documentation d'intégration Docker du site officiel de pm2
Vous devez vous assurer que pm2 s'exécute au premier plan, ce qui signifie que le processus démarré dans CMD ou ENTRYPOINT dans le fichier docker ne peut pas s'exécuter en mode démon
Vous pouvez spécifier le nombre de cœurs de processeur à utiliser lors de l'exécution d'un conteneur. Si vous n'allouez qu'un seul cœur, il n'est pas nécessaire de démarrer plusieurs processus Node.js, car l'unité de planification de base du processeur est uniquement un thread. un noyau signifie exécuter un processus Node.js et c'est tout
.