Docker kontejner a PM2 runnng v ec2 instance

0

Otázka

Mám ec2 instance, které běží na uzlu aplikace. Přemýšlím o tom, že implementace kontejneru pomocí docker. Pm2 běží dvě aplikace, jedna je aktuální uzel aplikace (express a mops) a cronjob pomocí programu. Je to dobrý nápad, dát své aplikace v jednom kontejneru?

Ještě nejsem seznámen s klady a zápory tohoto a četl jsem, že docker je již process manager. Jak bude pm2 fit v tom všem jednou jsem ji realizovat. Nebo mám prostě příkopu docker a spuštění aplikace v nativní linux mého ec2.

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

Nejlepší odpověď

2

Máte pár otázek, pokusím se na ně odpovědět níže:

1. Je to dobrý nápad, dát své aplikace v jednom kontejneru?

To záleží, existuje mnoho případů, proč byste chtěli spustit stejné nádoby dělat více věcí. Ale to opravdu záleží na CPU/paměti RAM/Paměti využití práce. A jak často to jezdí?

Každopádně z vlastní zkušenosti můžu říct, že když jsem spustit cronjob ze stejné nádoby, bych vždy používat pracovník přístup pro to buď pomocí NodeJS jader worker_threads nebo cluster modul. Protože nechcete, že cronjob dopady chování hlavní vlákno. Mám příklad spuštěné 2 aplikace na více vláken v následující repo.

2. měla jsem jen příkop docker a spuštění aplikace v nativní linux mého ec2

Docker a PM2, jsou to 2 opravdu rozdílné věci. Docker je v podstatě kontejnerizovaní celý Uzel aplikace, takže je mnohem jednodušší na loď. PM2 je proces, správce uzlu a zajistí, že vaše aplikace je nahoru a přichází s nějaké pěkné metriky a protokoly ROZHRANÍ na PM2 metriky. Můžete určitě použít 2 dohromady, jako PM2 je také jisti, že vaše aplikace bude začít až po zhroucení.

Nicméně, pokud budete používat pm2 budete muset použít pm2-modul runtime při použití docker. Příklad 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

Děkuji moc za odpověď. Plánovač úloh běží pouze během půlnoci a tedy by neměly mít vliv na hlavní aplikace. Podívám se na pm2-modul runtime, protože jsem opravdu chcete realizovat docker. Myslím, že další věc, pro mě je pochopit, jak to udělat vše v build pipeline možná pomocí Jenkins.
cam

V jiných jazycích

Tato stránka je v jiných jazycích

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