- 20, Oct 2024
- #1
Существует множество документации и обсуждений относительно запуска pm2 внутри контейнера Docker. И общее мнение кажется, что вы используете K8 или docker-compose для проверки работоспособности/автоматического перезапуска/множественного экземпляра и балансировки нагрузки (в сочетании с nginx), т.е. вместо pm2, и если вам нужен pm2, т.е. для управления несколькими узлами процессы в одном контейнере — в той степени, в которой вы бы его использовали; в контексте одного контейнера, если что.
Тем не менее, pm2 имеет отличный условный загрузчик с несколькими окружениями, известный как «экосистемный файл», который, как разработчик NodeJS, я нахожу более интуитивным и гибким, чем файл конфигурации docker-compose.yml.
Мой вопрос: практично ли запускать docker-compose с помощью пм2 ?
Таким образом, вам нужно хранить только минимальное количество жестко запрограммированных значений в вашем docker-compose.yml и вместо этого вы можете загружать переменные через переменные env, которые вы определяете в pm2.
И, например, чтобы запустить ваше приложение в производство, вы можете сделать:
args: up
...где основной script
value of your ecosystem config is the docker-compose binary with pm2 start ecosystem.config.js --only myapp-production-config --env production
.
Или есть ли какая-то причина запускать docker-compose через диспетчер процессов, например pm2, нет-нет?
#docker #docker-compose #node.js