Sådan dockeriseres en Node.js-applikation

Sadan Dockeriseres En Node Js Applikation



Dockerisering af en applikation omfatter at specificere alle de forudsætninger, der kræves for at udføre applikationen, og derefter bruge Dockerfilen til at bygge et specialiseret Docker-billede, der kan deles med forskellige maskiner. Dockerisering af en ' Node.js ”-applikation forbedrer konsistensen og sikrer bekvem fejlfinding i udviklerens ende.

Forudsætninger







Forudsætningerne for dockerisering af en ' Node.js ' ansøgningen omfatter følgende:



  • Docker installation.
  • Grundlæggende forståelse af Node.js-applikationen.

Hvordan dockeriseres en Node.js-applikation?

en ' Node.js ”-applikation kan dockeriseres via følgende trin:



Trin 1: Opret en 'package.json'-fil





Først skal du lave en ny mappe, hvor alle filerne vil være omfattet. I denne mappe skal du oprette ' package.json ” fil, der repræsenterer appen sammen med dens afhængigheder:

{
'navn' : 'docker_web_app' ,
'version' : '1.0.0' ,
'beskrivelse' : 'Node.js på Docker' ,
'forfatter' : 'Først sidst ' ,
'hoved' : 'server.js' ,
'scripts' : {
'Start' : 'node server.js'
} ,
'afhængigheder' : {
'udtrykke' : '^4.18.2'
} }



Trin 2: Generer en 'package-lock.json' fil

I filen 'package.json' skal du udføre ' npm installere ' cmdlet. Dette vil generere en ' package-lock.json ”-fil, som kopieres til Docker-billedet, som følger:

npm installere

Trin 3: Opret en server

Derefter skal du oprette en ' server.js '-fil, der erklærer en webapp, der bruger ' Express.js ” ramme:

'brug streng' ;

const express = kræve ( 'udtrykke' ) ;

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

const app = ekspres ( ) ;
app.get ( '/' , ( kræve, res ) = > {
send igen ( 'Hej Verden' ) ;
} ) ;

app.lyt ( PORT, VÆRT, ( ) = > {
console.log ( ` Kører på http: // ${HOST} : ${PORT} ` ) ;
} ) ;

Lad os nu gå videre til metoderne til at udføre applikationen i en Docker-container via et officielt Docker-billede.

Trin 4: Opret en Dockerfile

Opret en Dockerfile manuelt i den samme mappe, der omfatter alle filerne. I denne fil skal du skrive følgende kodelinje:

FRA node: 18
WORKDIR / usr / src / app
COPY pakke * .json . /
KØR npm installere
KOPI . .
UDSÆTTE 8080
CMD [ 'node' , 'server.js' ]

I ovenstående kodestykke skal du anvende nedenstående trin:

  • Først skal du bruge den seneste langsigtede supportversion 18 af noden som et basisbillede indeholdt i Docker Hub .
  • Derefter skal du oprette en mappe til at indeholde appkoden i billedet.
  • Dette repræsenterer arbejdsbiblioteket for applikationen.
  • Installer nu app-afhængighederne via ' npm ”.
  • Bemærk: Hvis npm version 4 eller tidligere bliver brugt, vil en 'package-lock.json' fil ikke blive oprettet.
  • Kopier nu ' package.json ' fil. Saml også appens kildekode i Docker-billedet via ' KOPI ” instruktion.
  • Brug ' UDSÆTTE ” instruktion om at lade appen binde til port 8080.
  • Til sidst skal du definere cmdlet'en til at udføre applikationen via CMD, som definerer kørselstiden. Her er ' node server.js ” cmdlet vil blive brugt til at starte serveren.

Trin 5: Opret en '.dockerignore'-fil

Opret en '.dockerignore'-fil i ' Dockerfil ” bibliotek/mappe, der omfatter det nedenfor angivne indhold:

node_modules
npm-debug.log

Dette indhold undgår, at de lokale moduler og debug-logfiler henholdsvis kopieres i Docker-billedet.

Trin 6: Byg billedet

Nu, i mappen, der omfatter Dockerfilen, skal du bygge billedet ved hjælp af den nedenfor angivne cmdlet:

docker bygning. -t nodejs / node-web-app

I denne cmdlet ' nodejs ' refererer til mappenavnet, så angiv cmdlet'en i overensstemmelse hermed og ' -t ” flag mærker billedet.

List nu billederne via denne kommando:

docker billeder

Trin 7: Kør billedet

Kør/kør billedet ved hjælp af den nedenfor angivne cmdlet:

docker-løb -s 49160 : 8080 -d nodejs / node-web-app

Her er ' -s ' flag omdirigerer en offentlig havn til en privat i containeren og ' -d ” flag udfører containeren i adskilt tilstand, dvs. i baggrunden.

Trin 8: Generer appens output

Udskriv nu output fra applikationen ved hjælp af følgende kommandoer:

havnearbejder ps
docker logs 77b1e3c8576e

Hvis der er behov for at navigere i containerskallen, skal du bruge ' exec ' cmdlet:

havnearbejder exec -det 77b1e3c8576e / beholder / bash

Her, ' 77b1e3c8576e ' repræsenterer containerens ID, der kan kopieres via den udførte ' docker ps ” kommando tidligere.

Trin 9: Test af applikationen

For at teste applikationen skal du hente porten på appen, som Docker kortlagde:

havnearbejder ps

I ovenstående cmdlet kortlagde Docker ' 8080 'port i containeren til havnen' 49160 ” på maskinen.

Trin 10: Fremkaldelse af applikationen

Påkald applikationen via ' krølle ” cmdlet ved at henvise til den ovenfor kortlagte port og indtaste de nødvendige værdier:

krølle -jeg lokal vært: 49160

Trin 11: Luk/dræb applikationen

Luk endelig applikationen ned via ' dræbe ' cmdlet:

havnearbejder dræbe 77b1e3c8576e

Bekræft også, om applikationen er stoppet via denne kommando med inputværdier:

krølle -jeg lokal vært: 49160

Konklusion

en ' Node.js ”-applikation kan dockeriseres ved at oprette en server, en dockerfil, '.dockerignore'-filen, bygge og køre billedet, generere appens output og teste, lukke og bekræfte standsning af applikationen. Denne artikel uddybede dockerisering af en Node.js-applikation.