Jak dockerizovat aplikaci Node.js

Jak Dockerizovat Aplikaci Node Js



Dockerizace aplikace zahrnuje specifikaci všech nezbytných předpokladů pro spuštění aplikace a následné použití Dockerfile k vytvoření specializovaného obrazu Dockeru, který lze sdílet s různými počítači. Dockerizace „ Node.js “ aplikace zlepšuje konzistenci a zajišťuje pohodlné ladění na konci vývojáře.

Předpoklady







Předpoklady pro dockerizaci „ Node.js “ aplikace zahrnuje následující:



  • Instalace dockeru.
  • Základní pochopení aplikace Node.js.

Jak dockerizovat aplikaci Node.js?

A ' Node.js “ aplikaci lze ukotvit pomocí následujících kroků:



Krok 1: Vytvořte soubor „package.json“.





Nejprve vytvořte nový adresář, kde budou všechny soubory. V tomto adresáři vytvořte „ package.json ” soubor, který představuje aplikaci spolu s jejími závislostmi:

{
'název' : 'docker_web_app' ,
'verze' : '1.0.0' ,
'popis' : 'Node.js na Docker' ,
'autor' : 'První poslední ' ,
'hlavní' : 'server.js' ,
'skripty' : {
'Start' : 'node server.js'
} ,
'závislosti' : {
'vyjádřit' : '^4.18.2'
} }



Krok 2: Vygenerujte soubor „package-lock.json“.

V souboru „package.json“ spusťte „ instalace npm ”cmdlet. Tím se vygeneruje „ package-lock.json “, který se zkopíruje do obrazu Docker, a to následovně:

npm Nainstalujte

Krok 3: Vytvořte server

Poté vytvořte „ server.js “, který deklaruje webovou aplikaci využívající „ Express.js “rámec:

'použij přísné' ;

const express = vyžadovat ( 'vyjádřit' ) ;

const PORT = 8080 ;
const HOST = '0.0.0.0' ;

const app = expres ( ) ;
app.get ( '/' , ( req, req ) = > {
znovu.poslat ( 'Ahoj světe' ) ;
} ) ;

app.poslouchat ( PORT, HOST, ( ) = > {
konzole.log ( ' Běží na http: // ${HOST} : ${PORT} ' ) ;
} ) ;

Nyní přejděme k metodologiím pro spuštění aplikace v kontejneru Docker prostřednictvím oficiálního obrazu Dockeru.

Krok 4: Vytvořte Dockerfile

Vytvořte Dockerfile ručně ve stejném adresáři obsahujícím všechny soubory. Do tohoto souboru napište následující řádek kódu:

Z uzlu: 18
WORKDIR / usr / src / aplikace
KOPÍROVAT balíček * .json /
RUN npm Nainstalujte
KOPÍROVAT . .
ODHALIT 8080
CMD [ 'uzel' , 'server.js' ]

Ve výše uvedeném fragmentu kódu použijte níže uvedené kroky:

  • Nejprve použijte nejnovější verzi dlouhodobé podpory 18 uzlu jako základní obraz obsažený v Docker Hub .
  • Poté vytvořte adresář, který bude obsahovat kód aplikace v obrázku.
  • To představuje pracovní adresář pro aplikaci.
  • Nyní nainstalujte závislosti aplikace pomocí „ npm “.
  • Poznámka: Pokud se používá npm verze 4 nebo starší, soubor „package-lock.json“ se nevytvoří.
  • Nyní zkopírujte „ package.json “. Sbalte také zdrojový kód aplikace do obrazu Docker prostřednictvím „ KOPÍROVAT “ instrukce.
  • Využijte „ ODHALIT “, aby se aplikace navázala na port 8080.
  • Nakonec definujte rutinu pro spuštění aplikace přes CMD, která definuje běhové prostředí. Zde, „ uzel server.js K inicializaci serveru bude použita rutina.

Krok 5: Vytvořte soubor „.dockerignore“.

Vytvořte soubor „.dockerignore“ v souboru „ Dockerfile ” adresář/složka obsahující níže uvedený obsah:

node_modules
npm-debug.log

Tento obsah se vyhýbá místním modulům a protokolům ladění, které mají být zkopírovány do obrazu Dockeru.

Krok 6: Vytvořte obrázek

Nyní v adresáři obsahujícím Dockerfile vytvořte obrázek pomocí níže uvedené rutiny:

sestavení dockeru. -t nodejs / node-web-app

V této rutině „ nodejs “ odkazuje na název adresáře, proto určete odpovídajícím způsobem rutinu a „ -t ” příznak označí obrázek.

Nyní seznam obrázků pomocí tohoto příkazu:

obrázky dockerů

Krok 7: Spusťte obrázek

Spusťte/spusťte obrázek pomocí níže uvedené rutiny:

docker spustit -p 49160 : 8080 -d nodejs / node-web-app

Zde, „ -p příznak ” přesměruje veřejný port na soukromý v rámci kontejneru a znak “ -d příznak ” spustí kontejner v odděleném režimu, tj. na pozadí.

Krok 8: Vygenerujte výstup aplikace

Nyní vytiskněte výstup aplikace pomocí následujících příkazů:

přístavní dělník ps
protokoly dockeru 77b1e3c8576e

Pokud je potřeba navigovat v shellu kontejneru, použijte „ exec ”cmdlet:

přístavní dělník exec -to 77b1e3c8576e / zásobník / bash

Tady, ' 77b1e3c8576e “ představuje ID kontejneru, které lze zkopírovat prostřednictvím spuštěného “ docker ps “.

Krok 9: Testování aplikace

Pro testování aplikace načtěte port aplikace, kterou Docker namapoval:

přístavní dělník ps

Ve výše uvedené rutině Docker namapoval „ 8080 „port v kontejneru do portu“ 49160 “ na stroji.

Krok 10: Vyvolání aplikace

Vyvolejte aplikaci pomocí „ kučera ” cmdlet odkazem na výše namapovaný port a zadáním požadovaných hodnot:

kučera -i localhost: 49160

Krok 11: Zavřete/zabijte aplikaci

Nakonec vypněte aplikaci pomocí „ zabít ”cmdlet:

přístavní dělník zabít 77b1e3c8576e

Pomocí tohoto příkazu také potvrďte, zda se aplikace zastavila, pomocí vstupních hodnot:

kučera -i localhost: 49160

Závěr

A ' Node.js “ aplikaci lze ukotvit vytvořením serveru, souboru dockerfile, souboru „.dockerignore“, vytvořením a spuštěním bitové kopie, vygenerováním výstupu aplikace a testováním, zavřením a potvrzením zastavení aplikace. Tento článek podrobně popisuje ukotvení aplikace Node.js.