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: 18WORKDIR / 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_modulesnpm-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 psdocker 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.