Πώς να οικοδομήσουμε ένα απλό API με τη φιάλη RESTful με το Docker-Compose

Θέλετε λοιπόν να μάθετε πώς να δημιουργήσετε ένα απλό API με τη φιάλη RESTful με το Docker-Compose, βλέπω. Λοιπόν, μετά από αυτό μπορείτε να διαβάσετε λίγο μπορείτε να χτίσετε σχεδόν οποιαδήποτε ιστοσελίδα θέλετε!

Εγκατάσταση του Docker

Μια καλή αρχή είναι να εγκαταστήσετε το Docker, αν δεν το έχετε ήδη. Οι χρήστες Mac μπορούν να το αποκτήσουν μέσω του προγράμματος εγκατάστασης του πακέτου Brew με την ακόλουθη εντολή:

εγκατείστε το λιμάνι

Ακολουθούμενη από την εντολή docker-compose:

Παρασκευάστε το docker-compose

Έχοντας κάνει αυτό, χάριν απλότητας, συνιστούμε ανεπιφύλακτα τη λήψη του Docker Desktop ώστε να μην χρειάζεται να αντιμετωπίσετε μερικές μεταβλητές περιβάλλοντος που έχουν ρυθμιστεί αυτόματα αν το έχετε.

Δημιουργία της εφαρμογής

Δομή έργου

Δημιούργησα ένα απλό έργο στο GitHub για να καταδείξω πώς όλα λειτουργούν. Μπορείτε να βρείτε το έργο εδώ.

Το έργο Simple App χωρίζεται σε δύο κύριους φακέλους, την εφαρμογή και τις εφαρμογές.

Οι δύο κύριοι φάκελοι του έργου

Ο φάκελος της εφαρμογής περιέχει όλα όσα σχετίζονται με την εφαρμογή Ιστού. Μέσα στατικά βρίσκουμε ότι η σελίδα index.html και άλλες σελίδες θα πρέπει να αποτυπωθούν και μέσα στα πρότυπα το ίδιο το index.html. Σε αυτό το σεμινάριο έχω δημιουργήσει μόνο μία ιστοσελίδα, αλλά αν θέλετε να προσθέσετε περισσότερα, όλα τα αρχεία .html θα μεταβούν στον φάκελο templates.

Τι είναι μέσα στατικά και πρότυπα

Μέσα από το φάκελο ανάπτυξης θα πρέπει να προσθέσουμε όλα όσα σχετίζονται με το Docker. Ακριβώς όπως φαίνεται από την παρακάτω εικόνα:

Όλα τα απαραίτητα από το Docker

Το API

Εντάξει, τώρα που ξέρουμε πώς είναι δομημένο το έργο, χρειαζόμαστε ένα API για την παράδοση των ιστοσελίδων. Το αρχείο app.py θα πρέπει να παραμείνει μέσα στο φάκελο της εφαρμογής, καθώς σκοπός του είναι να ασχοληθεί μόνο με τον τρόπο με τον οποίο λειτουργεί η εφαρμογή, όχι με την ανάπτυξη.

Κωδικός API

Μετά από όλες τις εισαγωγές python πρέπει να τρέξει Flask, έχουμε καθορίσει τις διαδρομές μας και τι κάνουν όταν έχουν πρόσβαση. Στο έργο αυτό, έχουμε μόνο μία διαδρομή, την πρώτη που ένας χρήστης θα πρέπει να χρησιμοποιήσει κατά την προσγείωση στον ιστότοπό μας.

Εάν θέλετε να προσθέσετε άλλες σελίδες, όπως μια σελίδα σύνδεσης, το μόνο που χρειάζεται να κάνετε είναι να προσθέσετε ένα άλλο @ app.route (), αλλάζοντας το όρισμα του για την επιθυμητή διαδρομή και δημιουργώντας μια μέθοδο που θα καλέσετε κατά την πρόσβαση στη συγκεκριμένη διαδρομή. Για να το καταλάβετε καλύτερα, ρίξτε μια ματιά στην παρακάτω εικόνα:

Προσθήκη νέων διαδρομών

Μέσα στον φάκελο της εφαρμογής χρειαζόμαστε ένα τελευταίο πράγμα, το αρχείο requirements.txt, το οποίο λέει στον Python ότι θα χρειαστεί να εκτελέσει την εφαρμογή μας. Σε αυτό το έργο, το αρχείο θα πρέπει να φαίνεται ως εξής:

Τι υπάρχει μέσα στις προδιαγραφές.txt

Το Docker

Τι είναι αυτό το αρχείο docker-compose.yml;

Αυτό το αρχείο είναι βασικά η ραχοκοκαλιά του Docker-Compose καθώς περιέχει όλες τις πληροφορίες που απαιτούνται για την εκτέλεση των επιθυμητών υπηρεσιών. Αυτές οι υπηρεσίες μπορεί να είναι σχεδόν οτιδήποτε θέλετε, σε αυτό το παράδειγμα θα τρέχω μόνο ένα κοντέινερ για την ίδια την εφαρμογή, αλλά θα μπορούσατε επίσης να έχετε άλλες υπηρεσίες, όπως μια βάση δεδομένων, για παράδειγμα. Σε αυτό το έργο, θα χρησιμοποιήσουμε το docker-compose έκδοση 2, όπως ορίζεται παρακάτω:

Docker-compose αρχείο

Η υπηρεσία εφαρμογής που δηλώνεται στο docker-compose.yml χρειάζεται κάποια πληροφορία για να τρέξει σωστά:

  • container_name Όνομα του κοντέινερ που θα δημιουργηθεί. Δημιουργήστε εδώ!
  • context Αυτός ο κατάλογος είναι το περιβάλλον δημιουργίας που αποστέλλεται στον δαίμονα Docker.
  • dockerfile Διαδρομή στο Dockerfile της υπηρεσίας που τρέχει, στην περίπτωση αυτή, το Dockerfile της εφαρμογής.
  • θύρες εκθέτουν τις θύρες. Είτε καθορίστε και τις δύο θύρες (HOST: CONTAINER) ή απλώς τη θύρα του δοχείου. Στην περίπτωση αυτή, η φιάλη χρησιμοποιεί την θύρα 5000 ως προεπιλογή.

Τόσο το ίδιο το Dockerfile;

Το Dockerfile χειρίζεται όλα όσα θα χρειαστεί να τρέξει ένα δοχείο. Σε αυτό το έργο, απλά αντιγράφετε το φάκελο της εφαρμογής στο κιβώτιο και στη συνέχεια ρυθμίζουμε τα πάντα με pip για να μπορέσουμε να εκτελέσουμε το app.py. Μπορούμε να το δούμε στην παρακάτω εικόνα:

Τι υπάρχει μέσα στο Dockerfile
  • FROM Καθορίζει ποια εικόνα του δοχείου θα χρησιμοποιηθεί. Μπορείτε να βρείτε άλλες εικόνες εδώ.
  • ADD Προσθέτει έναν τοπικό φάκελο στο δημιουργημένο κοντέινερ. Σε αυτήν την περίπτωση, προσθέτει το φάκελο της εφαρμογής στο φάκελο της εφαρμογής μέσα στο δοχείο.
  • Κατάλογος WORKDIR όπου θα εκτελούνται οι ακόλουθες εντολές.
  • RUN Εκτελεί μια εντολή. (Συχνά χρησιμοποιείται για την εγκατάσταση πακέτων λογισμικού).
  • CMD Ορίζει την προεπιλεγμένη εντολή ή / και τις παραμέτρους, οι οποίες μπορούν να αντικατασταθούν από τη γραμμή εντολών όταν το δοχείο docker τρέχει.

Εκτέλεση της εφαρμογής

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

Με το Makefile το μόνο που χρειάζεται να ξεκινήσουμε το App μας είναι ένα απλό:

κάντε την εγκατάσταση

Όπως μπορούμε να δούμε από την παρακάτω εικόνα:

Εντολή για την εκτέλεση του έργου

Τώρα, το μόνο που χρειάζεται να κάνουμε είναι να αποκτήσετε πρόσβαση στο localhost: 5000 για να δείτε τη νέα όμορφη ιστοσελίδα μας!

Η ιστοσελίδα μας Simple Project!

Μάθε περισσότερα!

Εάν σας άρεσε αυτό που είδατε, μπορείτε να μάθετε περισσότερα με αυτούς τους συνδέσμους!

  • Docker-Σύνταξη τεκμηρίωσης εδώ.
  • Flask API εδώ.

Το πρότυπο που χρησιμοποιείται σε αυτό το απλό έργο μπορεί να βρεθεί εδώ. Χάρη στο Start Bootstrap για την εκπληκτική σελίδα!