Εφαρμογή Golang για εκτέλεση ως κοντέινερ Docker

Epharmoge Golang Gia Ektelese Os Konteiner Docker



Σε αυτό το σεμινάριο, πρόκειται να μάθουμε τα βασικά της δημιουργίας εμπορευματοκιβωτίων ρυθμίζοντας μια εφαρμογή Golang για εκτέλεση ως κοντέινερ Docker. Θα μάθουμε πώς να εργαζόμαστε με ένα Dockerfile για να ρυθμίσουμε όλες τις απαιτήσεις για την εφαρμογή μας.

Η Go είναι μια γλώσσα προγραμματισμού ανοιχτού κώδικα, στατικά δακτυλογραφημένη και μεταγλωττισμένη, η οποία είναι γνωστή για την ικανότητά της να διευκολύνει την ανάπτυξη ενός απλού, αξιόπιστου και εξαιρετικά αποδοτικού λογισμικού. Βρίσκει τη χρησιμότητα στη δημιουργία διαφορετικών εφαρμογών, συμπεριλαμβανομένων εφαρμογών ιστού, λύσεων εγγενών στο cloud, διεπαφών γραμμής εντολών (CLIs) και είναι ενδιαφέρον ότι ακόμη και το ίδιο το Docker δημιουργείται χρησιμοποιώντας το Go.

Στην περίπτωσή μας, κατασκευάζουμε έναν απλό διακομιστή HTTP στο Go, ο οποίος μας επιτρέπει να δείξουμε πώς να δημιουργήσουμε και να Dockerize την εφαρμογή με απλά βήματα.







Απαιτήσεις:

Για να ακολουθήσετε αυτό το σεμινάριο, χρειάζεστε τα ακόλουθα εργαλεία:



  1. Εγκατεστημένος μεταγλωττιστής Go (απαιτείται έκδοση 1.21 και νεότερη)
  2. Εκτέλεση Docker Engine στον κεντρικό υπολογιστή σας
  3. Ένα πρόγραμμα επεξεργασίας IDE ή κειμένου για την επεξεργασία της εφαρμογής Go. Συνιστούμε να χρησιμοποιήσετε το Visual Studio ή το Vim
  4. Ένας διερμηνέας γραμμής εντολών όπως Bash, ZSH, PowerShell κ.λπ.

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



Κατασκευή της Εφαρμογής

Το επόμενο βήμα είναι να δημιουργήσουμε την εφαρμογή μας. Στην περίπτωσή μας, κατασκευάζουμε έναν απλό διακομιστή HTTP που απαντά με ένα απλό μήνυμα.





Ξεκινήστε δημιουργώντας έναν κατάλογο για την αποθήκευση του έργου Go. Μπορείτε να δώσετε οποιοδήποτε κατάλληλο όνομα.

$ mkdir go_server

Πλοηγηθείτε στον κατάλογο και δημιουργήστε ένα νέο αρχείο για να αποθηκεύσετε τον πηγαίο κώδικα. Στην περίπτωσή μας, καλούμε το αρχείο 'main.go' που υποδηλώνει ότι το αρχείο είναι ένας πηγαίος κώδικας Go.



$ αφή main.go

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

κύριο πακέτο

εισαγωγή (
'fmt'
'net/http'
)

func main ( ) {
// χειρίζονται εισερχόμενα αιτήματα
http.HandleFunc ( '/' , func ( Σε http.ResponseWriter, r * http.Αίτημα ) {
// Γράψτε μια απάντηση στον πελάτη
fmt.Fprintf ( Σε , 'Από το Docker (:' )
} )

// Εκκινήστε τον διακομιστή HTTP στη θύρα 8080
fmt.Println ( 'Ο διακομιστής λειτουργεί στο :8080' )
http.ListenAndServe ( ':8080' , μηδέν )
}

Η προηγούμενη εφαρμογή δημιουργεί έναν βασικό διακομιστή HTTP που συνδέεται με τη θύρα 8080. Ο διακομιστής απαντά με ένα βασικό μήνυμα όπως ορίστηκε προηγουμένως.

Δοκιμή της Εφαρμογής

Πριν δεσμεύσουμε την εφαρμογή, ας βεβαιωθούμε ότι η εφαρμογή λειτουργεί σωστά. Εκτελέστε την ακόλουθη εντολή:

$ πήγαινε τρέξε main.go

Η προηγούμενη εντολή ξεκινά την εφαρμογή και επιστρέφει το μήνυμα ως εξής:

Ο διακομιστής λειτουργεί σε: 8080

Στη συνέχεια, για να δοκιμάσετε τον διακομιστή HTTP, μπορείτε να εκτελέσετε την εντολή 'curl' ως εξής:

$ μπούκλα http: // localhost: 8080 /

Η προηγούμενη εντολή θα πρέπει να επιστρέψει το μήνυμα ως εξής:

Από το Docker ( : %

Μπορούμε τώρα να προχωρήσουμε και να δεσμεύσουμε την προηγούμενη εφαρμογή όπως ορίζεται στα επόμενα βήματα.

Περιεκτικότητα της Εφαρμογής

Τα επόμενα βήματα είναι η συζήτηση του τρόπου κατασκευής ενός κοντέινερ για την εφαρμογή. Ξεκινάμε δημιουργώντας το Dockerfile στον κατάλογο του έργου.

$ CD go_server

Δημιουργήστε ένα αρχείο που ονομάζεται Dockerfile χωρίς καμία επέκταση και επεξεργαστείτε το αρχείο με ένα πρόγραμμα επεξεργασίας κειμένου. Αυτό το αρχείο μας επιτρέπει να ορίσουμε όλες τις απαιτήσεις για την εφαρμογή μας ως εξής:

$ αφή Dockerfile
$ επειδή Dockerfile

Προσθέστε τη διαμόρφωση ως εξής:

ΑΠΟ ΓΚΟΛΑΝΓ: 1.21

ΔΙΕΥΘΥΝΤΗΣ ΕΡΓΑΣΙΑΣ / εφαρμογή

ΑΝΤΙΓΡΑΦΟ . .

ΕΚΤΕΛΕΣΤΕ πηγαίνετε να δημιουργήσετε main.go κύρια.

ΕΚΘΕΣΕΙ 8080

CMD [ './κύριος' ]

Στο προηγούμενο Dockerfile, ορίζουμε τις προηγούμενες λειτουργίες για την εφαρμογή.

  • Ορίστε την εικόνα βάσης στην επίσημη εικόνα Golang έκδοση 1.21.
  • Διαμορφώστε τον κατάλογο εργασίας μέσα στο κοντέινερ σε '/app'.
  • Αντιγράφουμε ολόκληρο τον κατάλογο του έργου στο κοντέινερ.
  • Δημιουργήστε την εφαρμογή Go μέσα στο κοντέινερ.
  • Εκθέστε τη θύρα 8080 για να επιτρέψετε μια εισερχόμενη κίνηση HTTP.
  • Ορίστε την εντολή για εκτέλεση της εφαρμογής Go.

Δημιουργία της εικόνας Docker

Για να δημιουργήσετε την εικόνα για την εφαρμογή, ανοίξτε το τερματικό και μεταβείτε στον κατάλογο του έργου. Στη συνέχεια, εκτελέστε την ακόλουθη εντολή για να δημιουργήσετε την εικόνα:

$ sudo κατασκευή λιμενεργατών go_server_docker.

Αντικαταστήστε το go_server_docker με το όνομα που θέλετε να εκχωρήσετε την εικόνα της εφαρμογής.

Μετά την επιτυχή δημιουργία της εικόνας Docker, μπορείτε να εκτελέσετε ένα κοντέινερ που βασίζεται σε αυτήν την εικόνα με την ακόλουθη εντολή:

$ τρέξιμο docker 8080 : 8080 go_server_docker

Η προηγούμενη εντολή θα πρέπει να αντιστοιχίσει τη θύρα 8080 από τον κεντρικό υπολογιστή στη θύρα 8080 μέσα στο κοντέινερ.

Για να δοκιμάσετε το κοντέινερ, εκτελέστε την ακόλουθη εντολή:

$ μπούκλα http: // localhost: 8080

Αυτό θα πρέπει να εκτυπώσει το μήνυμα που ορίζεται στην εφαρμογή.

συμπέρασμα

Σε αυτό το σεμινάριο, μάθαμε πώς να δημιουργήσουμε μια βασική εφαρμογή Go. Μάθαμε επίσης πώς να δημιουργούμε κοντέινερ την εφαρμογή ορίζοντας τις απαιτήσεις στο Dockerfile, δημιουργώντας την εικόνα από το κοντέινερ και εκτελώντας το κοντέινερ από την εικόνα.