Hvordan dockerisere en Node.js-applikasjon

Hvordan Dockerisere En Node Js Applikasjon



Dockerisering av en applikasjon inkluderer å spesifisere alle forutsetningene som kreves for å kjøre applikasjonen og deretter bruke Dockerfilen til å bygge et spesialisert Docker-bilde som kan deles med forskjellige maskiner. Dockerizing en ' Node.js ”-applikasjonen forbedrer konsistensen og sikrer praktisk feilsøking ved utviklerens ende.

Forutsetninger







Forutsetningene for dockerisering av en ' Node.js '-applikasjonen inkluderer følgende:



  • Docker installasjon.
  • Grunnleggende forståelse av Node.js-applikasjonen.

Hvordan dockerisere en Node.js-applikasjon?

en ' Node.js '-applikasjonen kan dockeriseres via følgende trinn:



Trinn 1: Lag en 'package.json'-fil





Lag først en ny katalog der alle filene skal bestå. I denne katalogen oppretter du ' package.json '-fil som representerer appen sammen med dens avhengigheter:

{
'Navn' : 'docker_web_app' ,
'versjon' : '1.0.0' ,
'beskrivelse' : 'Node.js på Docker' ,
'forfatter' : 'Først sist ' ,
'hoved' : 'server.js' ,
'skript' : {
'start' : 'node server.js'
} ,
'avhengigheter' : {
'uttrykke' : '^4.18.2'
} }



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

Innenfor 'package.json'-filen, kjør ' npm installere ' cmdlet. Dette vil generere en ' package-lock.json '-fil som kopieres til Docker-bildet, som følger:

npm installere

Trinn 3: Opprett en server

Etter det oppretter du en ' server.js '-fil som erklærer en nettapp som bruker ' Express.js ' rammeverk:

'bruk strengt' ;

const express = kreve ( 'uttrykke' ) ;

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

const app = ekspress ( ) ;
app.get ( '/' , ( krav, res ) = > {
send på nytt ( 'Hei Verden' ) ;
} ) ;

app.lytt ( PORT, VERT, ( ) = > {
console.log ( ` Kjører på http: // ${HOST} : ${PORT} ` ) ;
} ) ;

La oss nå gå videre til metodene for å kjøre applikasjonen i en Docker-beholder via et offisielt Docker-bilde.

Trinn 4: Lag en Dockerfile

Lag en Dockerfile manuelt i samme katalog som inneholder alle filene. I denne filen skriver du følgende kodelinje:

FRA node: 18
WORKDIR / usr / src / app
KOPIER pakke * .json . /
KJØR npm installere
KOPI . .
AVDEKKE 8080
CMD [ 'node' , 'server.js' ]

I kodebiten ovenfor bruker du trinnene nedenfor:

  • Først, bruk den siste langsiktige støtteversjonen 18 av noden som et basisbilde i Docker Hub .
  • Deretter oppretter du en katalog som inneholder appkoden i bildet.
  • Dette representerer arbeidskatalogen for applikasjonen.
  • Installer nå appavhengighetene via ' npm '.
  • Merk: Hvis npm versjon 4 eller tidligere brukes, vil ikke en 'package-lock.json'-fil bli opprettet.
  • Nå, kopier ' package.json ' fil. Bunt også appens kildekode i Docker-bildet via ' KOPIERE ' instruksjon.
  • Bruk ' AVDEKKE ” instruksjon for å la appen binde seg til port 8080.
  • Til slutt, definer cmdleten for å kjøre applikasjonen via CMD som definerer kjøretiden. Her er ' node server.js ” cmdlet vil bli brukt til å starte serveren.

Trinn 5: Lag en '.dockerignore'-fil

Opprett en '.dockerignore'-fil i ' Dockerfil ” katalog/mappe som inneholder innholdet nedenfor:

node_modules
npm-debug.log

Dette innholdet unngår at de lokale modulene og feilsøkingsloggene henholdsvis kopieres i Docker-bildet.

Trinn 6: Bygg bildet

Nå, i katalogen som omfatter Dockerfilen, bygg bildet ved å bruke den nedenfor angitte cmdleten:

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

I denne cmdleten ' nodejs ' refererer til katalognavnet, så spesifiser cmdleten tilsvarende og ' -t ' flagg merker bildet.

List nå bildene via denne kommandoen:

docker-bilder

Trinn 7: Kjør bildet

Kjør/kjør bildet ved å bruke cmdleten nedenfor:

docker run -s 49160 : 8080 -d nodejs / node-web-app

Her er ' -s flagget omdirigerer en offentlig port til en privat i containeren og ' -d flagget kjører beholderen i frakoblet modus, dvs. i bakgrunnen.

Trinn 8: Generer appens utdata

Skriv ut utdataene fra applikasjonen ved å bruke følgende kommandoer:

havnearbeider ps
docker logger 77b1e3c8576e

Hvis det er behov for å navigere innenfor beholderskallet, bruk ' exec ' cmdlet:

havnearbeider exec -den 77b1e3c8576e / bin / bash

Her, ' 77b1e3c8576e ' representerer beholderens ID som kan kopieres via den utførte ' docker ps ' kommando tidligere.

Trinn 9: Testing av applikasjonen

For å teste applikasjonen, hent porten til appen som Docker kartla:

havnearbeider ps

I cmdleten ovenfor kartla Docker ' 8080 'port i containeren til porten' 49160 ' på maskinen.

Trinn 10: Påkalling av applikasjonen

Påkall applikasjonen via ' krølle ' cmdlet ved å referere til den kartlagte porten ovenfor og angi de nødvendige verdiene:

krølle -Jeg lokal vert: 49160

Trinn 11: Lukk/drep applikasjonen

Til slutt, slå av applikasjonen via ' drepe ' cmdlet:

havnearbeider drepe 77b1e3c8576e

Bekreft også om applikasjonen har stoppet via denne kommandoen med inndataverdier:

krølle -Jeg lokal vert: 49160

Konklusjon

en ' Node.js ”-applikasjonen kan dokkes ved å opprette en server, en dockerfil, “.dockerignore”-filen, bygge og kjøre bildet, generere appens utdata, og teste, lukke og bekrefte stoppingen av applikasjonen. Denne artikkelen utdypet om dockerisering av en Node.js-applikasjon.