Cum să dockerizezi o aplicație Node.js

Cum Sa Dockerizezi O Aplicatie Node Js



Dockerizarea unei aplicații include specificarea tuturor cerințelor preliminare necesare pentru a executa aplicația și apoi utilizarea fișierului Docker pentru a construi o imagine Docker specializată care poate fi partajată cu diferite mașini. Dockerizarea unui „ Node.js ” aplicația îmbunătățește consistența și asigură o depanare convenabilă la sfârșitul dezvoltatorului.

Cerințe preliminare







Condițiile preliminare pentru dockerizarea unui „ Node.js ” aplicația include următoarele:



  • Instalare Docker.
  • Înțelegerea de bază a aplicației Node.js.

Cum să dockerizezi o aplicație Node.js?

A ' Node.js ” aplicația poate fi dockerizată prin următorii pași:



Pasul 1: Creați un fișier „package.json”.





Mai întâi, creați un nou director în care vor fi cuprinse toate fișierele. În acest director, creați „ pachet.json ” fișier care reprezintă aplicația împreună cu dependențele sale:

{
'Nume' : „docker_web_app” ,
'versiune' : „1.0.0” ,
'Descriere' : „Node.js pe Docker” ,
'autor' : 'Primul Ultimul ' ,
'principal' : „server.js” ,
'scripte' : {
'start' : „node server.js”
} ,
'dependente' : {
'expres' : „^4.18.2”
} }



Pasul 2: Generați un fișier „package-lock.json”.

În fișierul „package.json”, executați „ instalare npm ” cmdlet. Aceasta va genera un „ package-lock.json ” fișier care este copiat în imaginea Docker, după cum urmează:

npm instalare

Pasul 3: Creați un server

După aceea, creați un „ server.js ” fișier care declară o aplicație web utilizând „ Express.js ' cadru:

„folosește strict” ;

const express = require ( 'expres' ) ;

const PORT = 8080 ;
const HOST = „0.0.0.0” ;

const app = expres ( ) ;
app.get ( '/' , ( cerere, res ) = > {
res.trimite ( 'Salut Lume' ) ;
} ) ;

aplicație.ascultă ( PORT, GAZDA, ( ) = > {
console.log ( ` Rulează pe http: // ${HOST} : ${PORT} ` ) ;
} ) ;

Acum, să trecem la metodologiile pentru a executa aplicația într-un container Docker printr-o imagine oficială Docker.

Pasul 4: Creați un fișier Docker

Creați manual un Dockerfile în același director care cuprinde toate fișierele. În acest fișier, scrieți următoarea linie de cod:

DE LA nodul: 18
WORKDIR / usr / src / aplicația
COPIEAZĂ pachetul * .json . /
RUN npm instalare
COPIE . .
EXPUNE 8080
CMD [ 'nodul' , „server.js” ]

În fragmentul de cod de mai sus, aplicați pașii de mai jos:

  • În primul rând, utilizați cea mai recentă versiune de suport pe termen lung 18 a nodului ca imagine de bază conținută în Docker Hub .
  • După aceea, creați un director care să conțină codul aplicației din imagine.
  • Acesta reprezintă directorul de lucru al aplicației.
  • Acum, instalați dependențele aplicației prin „ npm ”.
  • Notă: Dacă se utilizează versiunea npm 4 sau anterioară, nu va fi creat un fișier „package-lock.json”.
  • Acum, copiați „ pachet.json ” dosar. De asemenea, grupați codul sursă al aplicației în imaginea Docker prin intermediul „ COPIE ” instrucție.
  • Utilizați „ EXPUNE ” instrucțiune pentru a lăsa aplicația să se lege la portul 8080.
  • În cele din urmă, definiți cmdletul pentru a executa aplicația prin CMD care definește timpul de execuție. Aici ' node server.js ” cmdlet-ul va fi utilizat pentru a iniția serverul.

Pasul 5: Creați un fișier „.dockerignore”.

Creați un fișier „.dockerignore” în „ Dockerfile ” director/dosar care cuprinde conținutul de mai jos:

module_noduri
npm-debug.log

Acest conținut evită ca modulele locale și, respectiv, jurnalele de depanare să fie copiate în imaginea Docker.

Pasul 6: Construiți imaginea

Acum, în directorul care cuprinde fișierul Docker, construiți imaginea folosind cmdletul menționat mai jos:

docker build . -t nodejs / nod-web-app

În acest cmdlet, „ nodejs ” se referă la numele directorului, așa că specificați cmdletul în consecință și „ -t ” flag etichetează imaginea.

Acum, enumerați imaginile prin această comandă:

imagini docker

Pasul 7: Rulați imaginea

Executați/rulați imaginea folosind cmdletul menționat mai jos:

docker run -p 49160 : 8080 -d nodejs / nod-web-app

Aici ' -p „steagul redirecționează un port public către unul privat din container și „ -d ” flag execută containerul în modul detașat, adică în fundal.

Pasul 8: Generați rezultatul aplicației

Acum, imprimați rezultatul aplicației folosind următoarele comenzi:

docher ps
jurnalele docker 77b1e3c8576e

Dacă este nevoie să navigați în interiorul carcasei containerului, utilizați „ exec ” cmdlet:

docher exec -aceasta 77b1e3c8576e / cos / bash

Aici, ' 77b1e3c8576e ” reprezintă ID-ul containerului care poate fi copiat prin intermediul „executului” docker ps ” comanda anterior.

Pasul 9: Testarea aplicației

Pentru a testa aplicația, preluați portul aplicației pe care Docker l-a mapat:

docher ps

În cmdletul de mai sus, Docker a mapat „ 8080 „port în interiorul containerului către port” 49160 ” pe mașină.

Pasul 10: Invocarea aplicației

Invocați aplicația prin intermediul „ răsuci ” cmdlet, referindu-se la portul mapat mai sus și introducând valorile necesare:

răsuci -i gazdă locală: 49160

Pasul 11: Închideți/Omorâți aplicația

În cele din urmă, închideți aplicația prin intermediul „ ucide ” cmdlet:

docher ucide 77b1e3c8576e

De asemenea, confirmați dacă aplicația s-a oprit prin această comandă cu valorile de intrare:

răsuci -i gazdă locală: 49160

Concluzie

A ' Node.js ” aplicația poate fi dockerizată prin crearea unui server, a unui fișier docker, a fișierului „.dockerignore”, construirea și rularea imaginii, generarea rezultatelor aplicației și testarea, închiderea și confirmarea opririi aplicației. Acest articol a elaborat dockerizarea unei aplicații Node.js.