Come dockerizzare un'applicazione Node.js

Come Dockerizzare Un Applicazione Node Js



La dockerizzazione di un'applicazione include la specifica di tutti i prerequisiti richiesti per eseguire l'applicazione e quindi l'utilizzo del Dockerfile per creare un'immagine Docker specializzata che può essere condivisa con varie macchine. Dockerizzare un “ Node.js ' migliora la coerenza e garantisce un comodo debug da parte dello sviluppatore.

Prerequisiti







I prerequisiti per dockerizzare un “ Node.js ' l'applicazione include quanto segue:



  • Installazione della finestra mobile.
  • Comprensione di base dell'applicazione Node.js.

Come dockerizzare un'applicazione Node.js?

UN ' Node.js L'applicazione può essere dockerizzata tramite i seguenti passaggi:



Passaggio 1: crea un file 'package.json'.





Innanzitutto, crea una nuova directory in cui saranno compresi tutti i file. All'interno di questa directory, crea il ' pacchetto.json ' file che rappresenta l'app insieme alle sue dipendenze:

{
'nome' : 'docker_web_app' ,
'versione' : '1.0.0' ,
'descrizione' : 'Node.js su Docker' ,
'autore' : 'Primo ultimo ' ,
'principale' : 'server.js' ,
'script' : {
'inizio' : 'nodo server.js'
} ,
'dipendenze' : {
'esprimere' : '^4.18.2'
} }



Passaggio 2: genera un file 'package-lock.json'.

All'interno del file 'package.json', esegui il comando ' installazione npm ' cmdlet. Questo genererà un ' pacchetto-lock.json ' che viene copiato nell'immagine Docker, come segue:

npm installare

Passaggio 3: crea un server

Successivamente, crea un ' server.js ' che dichiara un'app Web utilizzando il ' Express.js ' struttura:

'usare rigoroso' ;

const espresso = richiedi ( 'esprimere' ) ;

const PORTA = 8080 ;
constHOST = '0.0.0.0' ;

const app = espresso ( ) ;
app.get ( '/' , ( richiedi, ris ) = > {
risp.invia ( 'Ciao mondo' ) ;
} ) ;

app.ascolta ( PORTO, OSPITE, ( ) = > {
console.log ( ` In esecuzione su http: // ${HOST} : ${PORTO} ` ) ;
} ) ;

Passiamo ora alle metodologie per eseguire l'applicazione all'interno di un contenitore Docker tramite un'immagine Docker ufficiale.

Passaggio 4: crea un Dockerfile

Crea manualmente un Dockerfile all'interno della stessa directory che comprende tutti i file. In questo file, scrivi la seguente riga di codice:

DAL nodo: 18
DIR.LAVORO / usr / src / app
Pacchetto COPIA * .json . /
CORRI npm installare
COPIA . .
ESPORRE 8080
CMD [ 'nodo' , 'server.js' ]

Nello snippet di codice sopra, applica i passaggi indicati di seguito:

  • Innanzitutto, utilizza l'ultima versione di supporto a lungo termine 18 del nodo come immagine di base contenuta in Hub Docker .
  • Successivamente, crea una directory per contenere il codice dell'app nell'immagine.
  • Rappresenta la directory di lavoro per l'applicazione.
  • Ora installa le dipendenze dell'app tramite ' npm ”.
  • Nota: Se viene utilizzata la versione npm 4 o precedente, non verrà creato un file 'package-lock.json'.
  • Ora copia il ' pacchetto.json ' file. Inoltre, raggruppa il codice sorgente dell'app all'interno dell'immagine Docker tramite il pulsante ' COPIA ' istruzioni.
  • Utilizza il ' ESPORRE ' istruzioni per consentire all'app di collegarsi alla porta 8080.
  • Infine, definire il cmdlet per eseguire l'applicazione tramite CMD che definisce il runtime. Ecco, il “ nodo server.js ' verrà utilizzato per avviare il server.

Passaggio 5: crea un file '.dockerignore'.

Crea un file “.dockerignore” nella cartella “ Dockerfile 'directory/cartella comprendente il contenuto indicato di seguito:

nodo_moduli
npm-debug.log

Questo contenuto evita che i moduli locali e i log di debug vengano rispettivamente copiati nell'immagine Docker.

Passaggio 6: crea l'immagine

Ora, all'interno della directory che comprende il Dockerfile, crea l'immagine utilizzando il cmdlet indicato di seguito:

creazione della finestra mobile. -T nodejs / nodo-web-app

In questo cmdlet, ' nodejs ' si riferisce al nome della directory, quindi specificare il cmdlet di conseguenza e ' -T ' flag contrassegna l'immagine.

Ora elenca le immagini tramite questo comando:

immagini della finestra mobile

Passaggio 7: eseguire l'immagine

Esegui/esegui l'immagine utilizzando il cmdlet indicato di seguito:

esecuzione della finestra mobile -P 49160 : 8080 -D nodejs / nodo-web-app

Ecco, il “ -P ' Il flag reindirizza una porta pubblica a una privata all'interno del contenitore e il flag ' -D ' flag esegue il contenitore in modalità distaccata, ovvero in background.

Passaggio 8: genera l'output dell'app

Ora stampa l'output dell'applicazione utilizzando i seguenti comandi:

finestra mobile p.s
la finestra mobile registra 77b1e3c8576e

Se è necessario navigare all'interno della shell del contenitore, utilizzare il pulsante ' esecutivo 'cmdlet:

finestra mobile esecutivo -Esso 77b1e3c8576e / bidone / bash

Qui, ' 77b1e3c8576e ' rappresenta l'ID del contenitore che può essere copiato tramite l'esecuzione ' finestra mobile ps ' comando in precedenza.

Passaggio 9: test dell'applicazione

Per testare l'applicazione, recuperare la porta dell'app mappata da Docker:

finestra mobile p.s

Nel cmdlet precedente, Docker ha mappato il ' 8080 “porto all’interno del container verso il porto” 49160 'sulla macchina.

Passaggio 10: richiamo dell'applicazione

Richiamare l'applicazione tramite il pulsante “ arricciare ' facendo riferimento alla porta mappata sopra e inserendo i valori richiesti:

arricciare -io host locale: 49160

Passaggio 11: chiudi/uccidi l'applicazione

Infine, chiudi l'applicazione tramite il pulsante ' uccisione 'cmdlet:

finestra mobile uccisione 77b1e3c8576e

Inoltre, conferma se l'applicazione si è interrotta tramite questo comando con i valori di input:

arricciare -io host locale: 49160

Conclusione

UN ' Node.js L'applicazione può essere dockerizzata creando un server, un dockerfile, il file '.dockerignore', costruendo ed eseguendo l'immagine, generando l'output dell'app e testando, chiudendo e confermando l'arresto dell'applicazione. Questo articolo ha approfondito la dockerizzazione di un'applicazione Node.js.