Come creare un'app Nodejs su Docker

Come creare un'app Nodejs su Docker
Docker è diventato un argomento caldo di conversazione al giorno d'oggi soprattutto tra gli sviluppatori. Allora cos'è Docker? Docker è una piattaforma OpenSource che cavalca sul kernel Linux e consente agli sviluppatori di creare e distribuire le loro applicazioni in contenitori. I contenitori forniscono un ambiente isolato per l'esecuzione di applicazioni e vengono in bundle con le proprie librerie, dipendenze e file di configurazione che sono essenziali per la distribuzione automatica delle applicazioni.

In questa guida, ti guideremo attraverso come puoi creare un'app Nodejs su Docker. Imparerai come creare un'applicazione demo Nodejs sul tuo server e successivamente spingerla a Docker Hub. In questa guida, stiamo usando Ubuntu 18.04 LTS per il nostro ambiente di test.

Allora perché qualcuno dovrebbe voler spingere le proprie applicazioni su Docker? Come abbiamo visto in precedenza, Docker spedisce applicazioni in contenitori che raggruppano le librerie e le dipendenze. Ciò costituisce un ambiente a tutti gli effetti per la distribuzione delle applicazioni. Inoltre, il collegio elettorale dell'ambiente di sviluppo garantisce che l'applicazione funzioni allo stesso modo attraverso molti sviluppatori e macchine clienti.

Prerequisiti per lo sviluppo di Docker Nodejs

Questa guida presuppone che tu abbia una conoscenza pratica di Docker e anche una certa familiarità con la struttura di un'applicazione Nodejs.

Prima di andare oltre, assicurati che quanto segue sia installato sul tuo ambiente di test:

  1. Docker
  2. Nodejs & npm

Ora ci sporgemo le mani.

Passaggio 1: crea un nodo.Applicazione JS

Innanzitutto, inizia creando un'applicazione Nodejs. Creeremo una nuova directory e quindi navigeremo al suo interno come mostrato.

$ mkdir mynode-app && cd mynode-app

Quindi utilizzare NPM, abbreviazione per i pacchetti di Nodejs, per inizializzare la directory.

$ npm init

Il comando crea un file chiamato pacchetto.JSON . Ti verrà richiesto i dettagli del file JSON come nome, versione, descrizione, parole chiave e l'autore per menzionare solo alcuni.

All'estremità stessa sì per confermare i dettagli preferiti del file JSON.

Successivamente, aggiungi il framework Express eseguendo il comando:

$ npm Installa Express -Save

Dovresti ottenere un output come mostrato di seguito

Passaggio 2: crea un nodo.Applicazione JS

In questo passaggio, dobbiamo creare file necessari per l'applicazione Nodejs. Creiamo 2 file di esempio come segue:

  1. js
  2. html

Per il indice.js File, copia e incolla il contenuto di seguito:

const express = requisite ('express')
const app = express ()
app.get ('/', (req, res) =>
res.SendFile ('$ __ DirName/Index.html ')
)
app.Ascolta (3000, () =>
console.registro ('Ascoltare sulla porta 3000!')
)

Il file crea un percorso per l'indice.File HTML che ascolterà sulla porta 3000

Per l'indice.file html, incolla la seguente configurazione



Ciao! Benvenuti nella mia applicazione Nodejs



Ora siamo pronti per avviare l'app Nodejs.

Passaggio 3: eseguire l'applicazione Nodejs

Per avviare l'applicazione, basta emettere il comando

$ nodo indice.js

Dall'output, possiamo vedere che l'applicazione sta ascoltando sulla porta 3000. Per confermarlo, apri il browser e sfoglia l'IP del server come mostrato

http: // Ip-Address: 3000

Passaggio 4: dockerizza l'applicazione Nodejs

Successivamente, creeremo un file Docker

$ touch Dockerfile

Successivamente, incolla la configurazione di seguito

Dal nodo: carbonio
Workdir/usr/src/app
Copia pacchetto*.JSON ./
Esegui l'installazione NPM
COPIA…
Esporre 3000
Cmd ["nodo", "indice.js "]

Abbattiamo questo:

La prima riga mostra che intendiamo utilizzare l'ultima versione del nodo per creare la nostra immagine. Nodo.JS di solito utilizza elementi chimici per nominare le versioni LTS sul nodo.

La seconda riga indica la creazione del /usr/src/app directory che ospiterà il codice dell'applicazione nell'immagine.

Le righe 3 e 4 dirigono la copia del pacchetto.file json e l'esecuzione del Installazione NPM comando

COPIA… Questo pacchetto l'applicazione Nodejs - comprendente i file HTML e JS - nell'immagine Docker.

Esporre 3000 Questo definisce la porta che l'app Nodejs utilizzerà

Cmd ["nodo", "indice.JS ”] Questo visualizza il comando che deve essere eseguito per l'avvio dell'applicazione.

Passaggio 5. Costruisci il nodo.Applicazione JS

Dopo aver creato il file Docker, ora creeremo l'app Nodejs utilizzando il comando di seguito. Essere desideroso di includere uno spazio e un periodo alla fine come mostrato. L'opzione -t ci aiuta a taggare l'immagine per semplificarla di individuarla quando eseguiamo il Immagini Docker comando.

$ Docker build -t mynode -app .

Per confermare l'esistenza dell'immagine, eseguire il comando:

$ Docker Immagini

Passaggio 6. Esecuzione del contenitore Docker

Con la nostra immagine pronta, ora avvialo usando il comando:

# Docker run -p 8080: 3000 -D nodo -app

Il comando indirizzerà l'applicazione per ascoltare la porta 8080 anziché la porta 3000. Per confermare questo, aprire il browser e sfogliare l'URL del server come mostrato

http: // Ip-Address: 8080

Passaggio 7. Spingendo l'applicazione a Docker Hub

Questo è l'ultimo passo che ha già creato la nostra applicazione e ha assicurato che tutto funzioni come previsto.

Prima di procedere, assicurati di aver creato un account su Docker Hub

Quindi, crea ancora una volta l'immagine usando le credenziali Docker

# Docker build -t [nome utente]/tag .

Il nome utente è il tuo nome utente di accesso a hub Docker e il tag è il tag dell'applicazione. Nel mio caso, il comando sarà mostrato

# Docker build -t jayarthur/mynode -app .

Ora accedi a Docker Hub a mostrato.

# Docker Login

Fornisci il tuo nome utente e password e premi Invio

L'unica cosa rimasta ora è spingere l'immagine nell'hub Docker. Per raggiungere questo obiettivo, eseguire il comando:

# Docker Push Jayarthur/Mynode-app

Infine, accedi al tuo hub Docker e conferma l'esistenza dell'immagine dell'applicazione.

E questo ci porta la fine di questo tutorial. Sentiti libero di contattare il tuo feedback. Grazie.