Πώς να Dockerize μια εφαρμογή Node.js

Pos Na Dockerize Mia Epharmoge Node Js



Το Dockering μιας εφαρμογής περιλαμβάνει τον καθορισμό όλων των προϋποθέσεων που απαιτούνται για την εκτέλεση της εφαρμογής και στη συνέχεια τη χρήση του αρχείου Docker για τη δημιουργία μιας εξειδικευμένης εικόνας Docker που μπορεί να μοιραστεί με διάφορα μηχανήματα. Dockering ένα ' Node.js Η εφαρμογή ενισχύει τη συνοχή και εξασφαλίζει άνετο εντοπισμό σφαλμάτων στο τέλος του προγραμματιστή.

Προαπαιτούμενα







Οι προϋποθέσεις για τη σύνδεση ενός « Node.js Η εφαρμογή περιλαμβάνει τα ακόλουθα:



  • Εγκατάσταση Docker.
  • Βασική κατανόηση της εφαρμογής Node.js.

Πώς να Dockerize μια εφαρμογή Node.js;

ΕΝΑ ' Node.js ” Η εφαρμογή μπορεί να συνδεθεί μέσω των παρακάτω βημάτων:



Βήμα 1: Δημιουργήστε ένα Αρχείο 'package.json'.





Αρχικά, δημιουργήστε έναν νέο κατάλογο όπου θα περιλαμβάνονται όλα τα αρχεία. Μέσα σε αυτόν τον κατάλογο, δημιουργήστε το ' πακέτο.json ” αρχείο που αντιπροσωπεύει την εφαρμογή μαζί με τις εξαρτήσεις της:

{
'όνομα' : 'docker_web_app' ,
'εκδοχή' : '1.0.0' ,
'περιγραφή' : 'Node.js στο Docker' ,
'συγγραφέας' : 'Πρώτο τελευταίο ' ,
'κύριος' : 'server.js' ,
'σενάρια' : {
'αρχή' : 'node server.js'
} ,
'εξαρτήσεις' : {
'εξπρές' : '^4.18.2'
} }



Βήμα 2: Δημιουργήστε ένα Αρχείο 'package-lock.json'.

Μέσα στο αρχείο 'package.json', εκτελέστε το ' npm εγκατάσταση ” cmdlet. Αυτό θα δημιουργήσει ένα ' package-lock.json ” το οποίο αντιγράφεται στην εικόνα Docker, ως εξής:

npm εγκαθιστώ

Βήμα 3: Δημιουργήστε έναν διακομιστή

Μετά από αυτό, δημιουργήστε ένα ' server.js ' αρχείο που δηλώνει μια εφαρμογή web που χρησιμοποιεί το ' Express.js ' δομή:

'χρησιμοποιήστε αυστηρά' ;

const express = απαιτώ ( 'εξπρές' ) ;

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

const app = εξπρές ( ) ;
app.get ( '/' , ( απαίτηση, ανάλογ ) = > {
αποστέλλω ( 'Γειά σου Κόσμε' ) ;
} ) ;

app.ακούστε ( PORT, HOST, ( ) = > {
console.log ( ` Εκτελείται στο http: // ${HOST} : ${PORT} ` ) ;
} ) ;

Τώρα, ας προχωρήσουμε στις μεθοδολογίες για την εκτέλεση της εφαρμογής σε ένα κοντέινερ Docker μέσω μιας επίσημης εικόνας Docker.

Βήμα 4: Δημιουργήστε ένα αρχείο Docker

Δημιουργήστε ένα Dockerfile με μη αυτόματο τρόπο στον ίδιο κατάλογο που περιλαμβάνει όλα τα αρχεία. Σε αυτό το αρχείο, γράψτε την ακόλουθη γραμμή κώδικα:

ΑΠΟ κόμβο: 18
ΔΙΕΥΘΥΝΤΗΣ ΕΡΓΑΣΙΑΣ / usr / src / εφαρμογή
ΑΝΤΙΓΡΑΦΗ συσκευασίας * .json . /
RUN npm εγκαθιστώ
ΑΝΤΙΓΡΑΦΟ . .
ΕΚΘΕΣΕΙ 8080
CMD [ 'κόμβος' , 'server.js' ]

Στο παραπάνω απόσπασμα κώδικα, εφαρμόστε τα παρακάτω βήματα:

  • Αρχικά, χρησιμοποιήστε την τελευταία έκδοση 18 μακροπρόθεσμης υποστήριξης του κόμβου ως βασική εικόνα που περιέχεται σε Docker Hub .
  • Μετά από αυτό, δημιουργήστε έναν κατάλογο για να περιέχει τον κωδικό εφαρμογής στην εικόνα.
  • Αυτό αντιπροσωπεύει τον κατάλογο εργασίας για την εφαρμογή.
  • Τώρα, εγκαταστήστε τις εξαρτήσεις της εφαρμογής μέσω ' npm '.
  • Σημείωση: Εάν χρησιμοποιείται η έκδοση npm 4 ή παλαιότερη, δεν θα δημιουργηθεί αρχείο 'package-lock.json'.
  • Τώρα, αντιγράψτε το ' πακέτο.json ' αρχείο. Επίσης, ομαδοποιήστε τον πηγαίο κώδικα της εφαρμογής στην εικόνα του Docker μέσω του ' ΑΝΤΙΓΡΑΦΟ ” οδηγία.
  • Χρησιμοποιήστε το ' ΕΚΘΕΣΕΙ οδηγίες για να αφήσετε την εφαρμογή να συνδεθεί στη θύρα 8080.
  • Τέλος, ορίστε το cmdlet για να εκτελέσετε την εφαρμογή μέσω CMD που ορίζει το χρόνο εκτέλεσης. Εδώ, το « διακομιστής κόμβου.js Το cmdlet θα χρησιμοποιηθεί για την εκκίνηση του διακομιστή.

Βήμα 5: Δημιουργήστε ένα Αρχείο '.dockerignore'.

Δημιουργήστε ένα αρχείο '.dockerignore' στο ' Dockerfile ” κατάλογος/φάκελος που περιλαμβάνει το παρακάτω περιεχόμενο:

node_modules
npm-debug.log

Αυτό το περιεχόμενο αποφεύγει τις τοπικές λειτουργικές μονάδες και τα αρχεία καταγραφής εντοπισμού σφαλμάτων, αντίστοιχα, που πρέπει να αντιγραφούν στην εικόνα του Docker.

Βήμα 6: Δημιουργήστε την εικόνα

Τώρα, μέσα στον κατάλογο που περιλαμβάνει το Dockerfile, δημιουργήστε την εικόνα χρησιμοποιώντας το παρακάτω cmdlet:

κατασκευή λιμενεργατών. nodejs / κόμβος-ιστός-εφαρμογή

Σε αυτό το cmdlet, ' nodejs ' αναφέρεται στο όνομα του καταλόγου, επομένως καθορίστε το cmdlet ανάλογα και το ' Η σημαία επισημαίνει την εικόνα.

Τώρα, απαριθμήστε τις εικόνες μέσω αυτής της εντολής:

εικόνες αποβάθρας

Βήμα 7: Εκτελέστε την εικόνα

Εκτελέστε/εκτελέστε την εικόνα χρησιμοποιώντας το παρακάτω cmdlet:

τρέξιμο docker 49160 : 8080 -ρε nodejs / κόμβος-ιστός-εφαρμογή

Εδώ, το « Η σημαία ανακατευθύνει ένα δημόσιο λιμάνι σε ένα ιδιωτικό μέσα στο κοντέινερ και το -ρε Το flag εκτελεί το κοντέινερ σε λειτουργία αποσύνδεσης, δηλαδή στο παρασκήνιο.

Βήμα 8: Δημιουργήστε την έξοδο της εφαρμογής

Τώρα, εκτυπώστε την έξοδο της εφαρμογής χρησιμοποιώντας τις ακόλουθες εντολές:

λιμενεργάτης ΥΣΤΕΡΟΓΡΑΦΟ
αρχεία καταγραφής docker 77b1e3c8576e

Εάν υπάρχει ανάγκη πλοήγησης μέσα στο κέλυφος του κοντέινερ, χρησιμοποιήστε το ' εκτελεστ ” cmdlet:

λιμενεργάτης εκτελεστ -το 77b1e3c8576e / αποθήκη / βίαιο χτύπημα

Εδώ, ' 77b1e3c8576e ' αντιπροσωπεύει το αναγνωριστικό του κοντέινερ που μπορεί να αντιγραφεί μέσω του εκτελεσμένου ' docker ps ” εντολή προηγουμένως.

Βήμα 9: Δοκιμή της εφαρμογής

Για τη δοκιμή της εφαρμογής, ανακτήστε τη θύρα της εφαρμογής που αντιστοίχισε το Docker:

λιμενεργάτης ΥΣΤΕΡΟΓΡΑΦΟ

Στο παραπάνω cmdlet, ο Docker αντιστοίχισε το ' 8080 «Θύρα εντός του κοντέινερ προς το λιμάνι» 49160 » στο μηχάνημα.

Βήμα 10: Επίκληση της Εφαρμογής

Επικαλέστε την εφαρμογή μέσω του ' μπούκλα ” cmdlet ανατρέχοντας στην παραπάνω αντιστοιχισμένη θύρα και εισάγοντας τις απαιτούμενες τιμές:

μπούκλα -Εγώ localhost: 49160

Βήμα 11: Κλείσιμο/Σκότωση της Εφαρμογής

Τέλος, τερματίστε την εφαρμογή μέσω του ' σκοτώνω cmdlet:

λιμενεργάτης σκοτώνω 77b1e3c8576e

Επίσης, επιβεβαιώστε εάν η εφαρμογή έχει σταματήσει μέσω αυτής της εντολής με τιμές εισαγωγής:

μπούκλα -Εγώ localhost: 49160

συμπέρασμα

ΕΝΑ ' Node.js ' η εφαρμογή μπορεί να συνδεθεί με τη δημιουργία ενός διακομιστή, ενός αρχείου docker, του αρχείου '.dockerignore', δημιουργίας και εκτέλεσης της εικόνας, δημιουργώντας την έξοδο της εφαρμογής και δοκιμάζοντας, κλείνοντας και επιβεβαιώνοντας τη διακοπή της εφαρμογής. Αυτό το άρθρο αναπτύχθηκε σχετικά με τη σύνδεση μιας εφαρμογής Node.js.