Hur man dockeriserar en Node.js-applikation

Hur Man Dockeriserar En Node Js Applikation



Att skapa en applikation inkluderar att specificera alla förutsättningar som krävs för att köra applikationen och sedan använda Dockerfilen för att bygga en specialiserad Docker-avbildning som kan delas med olika maskiner. Dockerizing en ' Node.js ”-applikationen förbättrar konsistensen och säkerställer bekväm felsökning i utvecklarens ände.

Förutsättningar







Förutsättningarna för att hamna i en ' Node.js ' ansökan inkluderar följande:



  • Docker installation.
  • Grundläggande förståelse för Node.js-applikationen.

Hur man dockeriserar en Node.js-applikation?

en ' Node.js ”-applikationen kan dockas via följande steg:



Steg 1: Skapa en 'package.json'-fil





Skapa först en ny katalog där alla filer kommer att finnas. Inom den här katalogen skapar du ' package.json ” fil som representerar appen tillsammans med dess beroenden:

{
'namn' : 'docker_web_app' ,
'version' : '1.0.0' ,
'beskrivning' : 'Node.js på Docker' ,
'författare' : 'Första Sista' ,
'huvudsaklig' : 'server.js' ,
'skript' : {
'Start' : 'node server.js'
} ,
'beroenden' : {
'uttrycka' : '^4.18.2'
} }



Steg 2: Skapa en 'package-lock.json'-fil

I filen 'package.json' kör du ' npm installera ' cmdlet. Detta kommer att generera en ' package-lock.json ”-fil som kopieras till Docker-bilden, enligt följande:

npm Installera

Steg 3: Skapa en server

Efter det skapar du en ' server.js '-fil som deklarerar en webbapp som använder ' Express.js ' ramverk:

'använd strikt' ;

const express = kräver ( 'uttrycka' ) ;

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

const app = express ( ) ;
app.get ( '/' , ( req, res ) = > {
skicka på nytt ( 'Hej världen' ) ;
} ) ;

app.lyssna ( PORT, VÄRD, ( ) = > {
console.log ( ` Körs på http: // ${HOST} : ${PORT} ` ) ;
} ) ;

Låt oss nu gå vidare till metoderna för att köra applikationen i en Docker-behållare via en officiell Docker-bild.

Steg 4: Skapa en dockerfil

Skapa en Dockerfil manuellt i samma katalog som innehåller alla filer. I den här filen skriver du följande kodrad:

FRÅN nod: 18
WORKDIR / usr / src / app
COPY-paket * .json . /
KÖR npm Installera
KOPIERA . .
ÖVERSIKT 8080
CMD [ 'nod' , 'server.js' ]

I ovanstående kodavsnitt tillämpar du stegen nedan:

  • Använd först den senaste långsiktiga supportversionen 18 av noden som en basbild i Docker Hub .
  • Efter det skapar du en katalog som innehåller appkoden i bilden.
  • Detta representerar arbetskatalogen för programmet.
  • Installera nu appberoendena via ' npm ”.
  • Notera: Om npm version 4 eller tidigare används, skapas inte filen 'package-lock.json'.
  • Kopiera nu ' package.json ' fil. Bunta också appens källkod i Docker-bilden via ' KOPIERA ' instruktion.
  • Använd ' ÖVERSIKT ” instruktion för att låta appen binda till port 8080.
  • Slutligen, definiera cmdlet för att köra programmet via CMD som definierar körtiden. Här, ' nod server.js ” cmdlet kommer att användas för att initiera servern.

Steg 5: Skapa en '.dockerignore'-fil

Skapa en '.dockerignore'-fil i ' Dockerfil ” katalog/mapp som innehåller nedanstående innehåll:

node_modules
npm-debug.log

Detta innehåll undviker att de lokala modulerna respektive felsökningsloggarna kopieras i Docker-bilden.

Steg 6: Bygg bilden

Bygg nu bilden i katalogen som innehåller Dockerfilen med den nedan angivna cmdleten:

hamnarbyggare. -t nodejs / nod-webb-app

I denna cmdlet ' nodejs ' hänvisar till katalognamnet så ange cmdleten i enlighet med detta och ' -t ” flagga taggar bilden.

Lista nu bilderna via detta kommando:

docker-bilder

Steg 7: Kör bilden

Kör/kör bilden med den nedan angivna cmdleten:

hamnarkörning -s 49160 : 8080 -d nodejs / nod-web-app

Här, ' -s flaggan omdirigerar en offentlig hamn till en privat i behållaren och -d flaggan kör behållaren i fristående läge, dvs i bakgrunden.

Steg 8: Generera appens utdata

Skriv ut utdata från programmet med följande kommandon:

hamnarbetare ps
docker loggar 77b1e3c8576e

Om det finns ett behov av att navigera inom containerskalet, använd ' exec ' cmdlet:

hamnarbetare exec -Det 77b1e3c8576e / bin / våldsamt slag

Här, ' 77b1e3c8576e ” representerar behållarens ID som kan kopieras via den körda ” hamnare ps ” kommandot tidigare.

Steg 9: Testa applikationen

För att testa applikationen, hämta porten för appen som Docker mappade:

hamnarbetare ps

I ovanstående cmdlet kartlade Docker ' 8080 'port i containern till hamnen' 49160 ” på maskinen.

Steg 10: Anropa programmet

Åberopa applikationen via ' ringla ” cmdlet genom att hänvisa till den ovan mappade porten och ange de nödvändiga värdena:

ringla -jag lokal värd: 49160

Steg 11: Stäng/döda programmet

Slutligen, stäng av applikationen via ' döda ' cmdlet:

hamnarbetare döda 77b1e3c8576e

Bekräfta också om applikationen har stoppats via detta kommando med inmatningsvärden:

ringla -jag lokal värd: 49160

Slutsats

en ' Node.js ”-applikationen kan dockas genom att skapa en server, en dockerfil, filen ”.dockerignore”, bygga och köra bilden, generera appens utdata och testa, stänga och bekräfta att programmet stoppas. Den här artikeln utvecklade mer om dockerisering av en Node.js-applikation.