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: 18WORKDIR / 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_nodurinpm-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 psjurnalele 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.