Erstellen einer Go-Anwendung in Docker
Erstellen einer Go-Anwendung
Beginnen wir mit der Erstellung einer einfachen Go-Anwendung. Erstellen Sie eine neue Datei namens main.go
mit folgendem Inhalt:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, LabEx!")
})
fmt.Println("Server startet auf Port :8080")
http.ListenAndServe(":8080", nil)
}
Diese Go-Anwendung lauscht auf Port 8080 und antwortet mit der Nachricht "Hello, LabEx!", wenn eine Anfrage an die Root-URL (/
) gesendet wird.
Erstellen eines Docker Images
Um diese Go-Anwendung in einem Docker-Container auszuführen, müssen wir ein Docker-Image erstellen. Erstellen Sie eine neue Datei namens Dockerfile
mit folgendem Inhalt:
FROM golang:1.18-alpine
WORKDIR /app
COPY . .
RUN go build -o main .
CMD ["./main"]
Dieses Dockerfile:
- Verwendet das offizielle
golang:1.18-alpine
Image als Basis-Image.
- Legt das Arbeitsverzeichnis auf
/app
fest.
- Kopiert den Go-Anwendungskode in den Container.
- Erstellt die Go-Anwendung und erzeugt eine ausführbare Datei namens
main
.
- Legt den Befehl fest, den ausführbaren
main
-Befehl beim Starten des Containers auszuführen.
Erstellen des Docker Images
Um das Docker-Image zu erstellen, führen Sie den folgenden Befehl im selben Verzeichnis wie das Dockerfile
aus:
docker build -t my-go-app .
Dieser Befehl erstellt ein Docker-Image mit dem Tag my-go-app
.
Überprüfen des Docker Images
Sie können die verfügbaren Docker-Images auf Ihrem System auflisten, indem Sie den folgenden Befehl ausführen:
docker images
Sie sollten das Image my-go-app
in der Liste sehen.
Nun, da wir ein Docker-Image für unsere Go-Anwendung haben, können wir es in einem Docker-Container ausführen.