Golang-Anwendung zur Ausführung als Docker-Container

Golang Anwendung Zur Ausfuhrung Als Docker Container



In diesem Tutorial lernen wir die Grundlagen der Containerisierung kennen, indem wir eine Golang-Anwendung für die Ausführung als Docker-Container einrichten. Wir lernen, wie wir mit einer Docker-Datei arbeiten, um alle Anforderungen für unsere Anwendung zu konfigurieren.

Go ist eine statisch typisierte und kompilierte Open-Source-Programmiersprache, die für ihre Fähigkeit bekannt ist, die Entwicklung einer einfachen, zuverlässigen und hocheffizienten Software zu erleichtern. Es findet seinen Nutzen bei der Erstellung verschiedener Anwendungen, einschließlich Web-Apps, Cloud-nativer Lösungen und Befehlszeilenschnittstellen (CLIs), und interessanterweise wird sogar Docker selbst mit Go erstellt.

In unserem Fall erstellen wir einen einfachen HTTP-Server in Go, der es uns ermöglicht, zu demonstrieren, wie man die Anwendung in einfachen Schritten erstellt und dockerisiert.







Anforderungen:

Um diesem Tutorial folgen zu können, benötigen Sie die folgenden Tools:



  1. Installierter Go-Compiler (Version 1.21 und höher erforderlich)
  2. Ausführen der Docker Engine auf Ihrem Host-Computer
  3. Eine IDE oder ein Texteditor zum Bearbeiten der Go-Anwendung. Wir empfehlen die Verwendung von Visual Studio oder Vim
  4. Ein Befehlszeileninterpreter wie Bash, ZSH, PowerShell usw.

Nachdem die gegebenen Anforderungen erfüllt sind, können wir fortfahren und lernen, wie die Anwendung erstellt wird.



Erstellen der Anwendung

Der nächste Schritt besteht darin, unsere Anwendung zu erstellen. In unserem Fall bauen wir einen einfachen HTTP-Server, der mit einer einfachen Nachricht antwortet.





Erstellen Sie zunächst ein Verzeichnis zum Speichern des Go-Projekts. Sie können einen beliebigen passenden Namen angeben.

$ mkdir go_server

Navigieren Sie in das Verzeichnis und erstellen Sie eine neue Datei zum Speichern des Quellcodes. In unserem Fall nennen wir die Datei „main.go“, was bedeutet, dass es sich bei der Datei um einen Go-Quellcode handelt.



$ berühren main.go

Bearbeiten Sie abschließend die Datei und fügen Sie den Quellcode zur Anwendung hinzu, wie im Folgenden gezeigt:

Paket main

importieren (
„fmt“
„net/http“
)

Funktion main ( ) {
// Bearbeitung eingehender Anfragen
http.HandleFunc ( „/“ , Funktion ( In http.ResponseWriter, r * http.Anfrage ) {
// Schreiben Sie eine Antwort an den Kunden
fmt.Fprintf ( In , „Von Docker (:“ )
} )

// Starten Sie den HTTP-Server am Port 8080
fmt.Println ( „Server läuft auf:8080“ )
http.ListenAndServe ( „:8080“ , null )
}

Die vorherige Anwendung erstellt einen einfachen HTTP-Server, der sich an Port 8080 bindet. Der Server antwortet mit einer Basisnachricht, wie zuvor definiert.

Testen der Anwendung

Bevor wir die Anwendung andocken, stellen wir sicher, dass die App ordnungsgemäß funktioniert. Führen Sie den folgenden Befehl aus:

$ Führen Sie main.go aus

Der vorherige Befehl startet die Anwendung und gibt die Nachricht wie folgt zurück:

Der Server läuft auf: 8080

Als nächstes können Sie zum Testen des HTTP-Servers den Befehl „curl“ wie folgt ausführen:

$ Curl http: // lokaler Host: 8080 /

Der vorherige Befehl sollte die Nachricht wie folgt zurückgeben:

Von Docker ( : %

Wir können nun fortfahren und die vorherige Anwendung wie in den nächsten Schritten definiert andocken.

Containerisieren der Anwendung

In den nächsten Schritten wird erläutert, wie ein Container für die Anwendung erstellt wird. Wir beginnen mit der Erstellung der Docker-Datei im Projektverzeichnis.

$ CD go_server

Erstellen Sie eine Datei namens Dockerfile ohne Erweiterung und bearbeiten Sie die Datei mit einem Texteditor. Mit dieser Datei können wir alle Anforderungen für unsere Anwendung wie folgt definieren:

$ berühren Docker-Datei
$ Weil Docker-Datei

Fügen Sie die Konfiguration wie folgt hinzu:

VON golang: 1.21

ARBEITSVERZEICHNIS / App

KOPIEREN . .

RUN, los, main.go erstellen hauptsächlich .

EXPONIEREN 8080

CMD [ './hauptsächlich' ]

In der vorherigen Docker-Datei definieren wir die vorherigen Vorgänge für die Anwendung.

  • Stellen Sie das Basis-Image auf die offizielle Golang-Image-Version 1.21 ein.
  • Konfigurieren Sie das Arbeitsverzeichnis im Container auf „/app“.
  • Wir kopieren das gesamte Projektverzeichnis in den Container.
  • Erstellen Sie die Go-Anwendung im Container.
  • Geben Sie den Port 8080 frei, um eingehenden HTTP-Verkehr zuzulassen.
  • Legen Sie den Befehl fest, um die Go-Anwendung auszuführen.

Erstellen des Docker-Images

Um das Image für die Anwendung zu erstellen, öffnen Sie das Terminal und navigieren Sie zum Projektverzeichnis. Führen Sie als Nächstes den folgenden Befehl aus, um das Image zu erstellen:

$ Sudo Docker-Build -T go_server_docker .

Ersetzen Sie go_server_docker durch den Namen, den Sie dem App-Image zuweisen möchten.

Nachdem Sie das Docker-Image erfolgreich erstellt haben, können Sie mit dem folgenden Befehl einen Container basierend auf diesem Image ausführen:

$ Docker-Lauf -P 8080 : 8080 go_server_docker

Der vorherige Befehl sollte den Port 8080 vom Hostcomputer dem Port 8080 im Container zuordnen.

Führen Sie den folgenden Befehl aus, um den Container zu testen:

$ Curl http: // lokaler Host: 8080

Dadurch sollte die in der Anwendung definierte Nachricht gedruckt werden.

Abschluss

In diesem Tutorial haben wir gelernt, wie man eine einfache Go-Anwendung erstellt. Wir haben auch gelernt, wie man die Anwendung containerisiert, indem man die Anforderungen in der Docker-Datei definiert, das Image aus dem Container erstellt und den Container aus dem Image ausführt.