Pojemnik Docker i uruchomienie PM2 w instancji ec2

0

Pytanie

Mam instancje ec2, w których uruchomiona jest aplikacja hosta. Myślę o realizacji pojemnika za pomocą docker. pm2 uruchamia dwie aplikacje, z których jeden jest rzeczywistą aplikacją hosta (express i pug), a drugie-cronjob, korzystający z porządku obrad. Dobra czy pomysł umieścić moje aplikacje w jeden kontener?

Ja jeszcze nie znam plusy i minusy tego, i czytałem, że docker jest już menedżerem procesów. Jak pm2 zmieści się w to wszystko, jak tylko go внедрю. Czy mi się należy po prostu zrezygnować z nudziarz z niego, co i uruchamianie aplikacji w ojczystym Linux mojego ec2.

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

Najlepsza odpowiedź

2

Masz kilka pytań, postaram się odpowiedzieć poniżej:

1. Dobra czy pomysł umieszczać moje aplikacje w jeden kontener?

To zależy od tego, istnieje wiele przypadków, gdy chcesz uruchomić jeden i ten sam pojemnik, wykonując kilka zadań. Ale to naprawdę zależy od procesora/pamięci ram/pamięci w zadaniu. I jak często to się dzieje?

W każdym razie, na podstawie własnych doświadczeń mogę powiedzieć, że gdybym uruchamiał cronjob z jednego i tego samego pojemnika, ja zawsze używałem do tej pracy podejście, za pomocą jądra NodeJS worker_threads lub cluster moduł. Bo nie chcesz, aby cronjob wpływa na zachowanie głównego wątku. Mam przykład uruchomienia 2 aplikacje w wielu liniach w przyszłym repozytorium.

2. czy mogę po prostu zrezygnować z nudziarz z niego, co i uruchamianie aplikacji w ojczystym Linux mojego ec2

Docker i PM2-to 2 naprawdę różne rzeczy. Docker jest w zasadzie przeznaczony dla konteneryzacja całego aplikacji hosta, więc o wiele łatwiej wysłać. PM2-to menedżer procesów dla węzła, który czuwa nad tym, aby twoja aplikacja działało i miało kilka dobrych wyników, i rejestruje interfejs użytkownika w rejestrach PM2. Na pewno można użyć 2 razem, tak jak PM2 również gwarantuje, że twoja aplikacja zostanie uruchomiony po awarii.

Jednakże, jeśli używasz pm2, należy użyć pm2-czas realizacji przy użyciu docker. Przykład Pliku konfiguracyjnego:

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

Bardzo dziękuję za odpowiedź. Zadanie cron działa tylko do północy, więc nie powinno wpływać na główne aplikacji. Zbadam pm2-czas realizacji, ponieważ naprawdę chcę zrealizować docker. Myślę, że następujący, że muszę to zrozumieć, jak to wszystko zrobić w procesie kompilacji, być może, z pomocą Jenkins.
cam

W innych językach

Ta strona jest w innych językach

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