Implementierung von zwei Basis-Images für die Docker-Bereitstellung von Go

Implementierung von zwei Basis-Images für die Docker-Bereitstellung von Go

1. golang:neuestes Basis-Image

mkdir gotest
Berühren Sie main.go
Docker-Datei berühren

1. Beispielcode

Paket Haupt

importieren (
    "fmt"
    "Protokoll"
    "net/http"
)

Funktion main() {
    http.HandleFunc("/", func(Schreiber http.ResponseWriter, Anfrage *http.Request) {
        fmt.Fprint(writer, "Hallo Welt")
    })
    fmt.Println("3000!!")
    log.Fatal(http.ListenAndServe(":3000", nil))
}

2. Dockerfile-Konfiguration

#Quellbild VON golang:latest
#Legen Sie das Arbeitsverzeichnis WORKDIR $GOPATH/src/github.com/gotest fest
#Fügen Sie den Go-Projektcode des Servers zum Docker-Container ADD hinzu. $GOPATH/src/github.com/gotest
#go build ausführbare Datei RUN go build .
#Port freigeben EXPOSE 3000
#Führen Sie abschließend den Docker-Befehl ENTRYPOINT ["./gotest"] aus.

3. Verpacken des Images

docker build -t gotest.
  • Der Kompilierungsprozess golang:latest erstellt tatsächlich eine Go-Entwicklungsumgebung im Container.
  • Dieses Quellbildpaket ist ungefähr 800 MB groß, was relativ groß ist.

2. alpine:neuestes Basis-Image

  1. Der allgemeine Prozess bei der Verwendung dieses Images besteht darin, das Go-Programm in eine Binärdatei auf dem Linux-Computer zu packen, es dann in die Apine-Umgebung abzulegen und die kompilierte Datei auszuführen.
  2. Standardmäßig ist die Laufzeitumgebungsvariable CGO_ENABLED=1 von Go, was bedeutet, dass cgo standardmäßig gestartet wird und Sie C-Code aus Go-Code aufrufen können. CGO kann durch Festlegen von CGO_ENABLED=0 deaktiviert werden. Sie müssen also Folgendes ausführen: CGO_ENABLED=0 go build.
  3. Dieses Basisimage ist nur 13 MB groß, was sehr klein ist.
#Quellbild VON alpine:latest
#Legen Sie das Arbeitsverzeichnis WORKDIR $GOPATH/src/github.com/common fest
#Fügen Sie den Go-Projektcode des Servers zum Docker-Container ADD hinzu. $GOPATH/src/github.com/common
#Port freigeben EXPOSE 3002
#Führen Sie abschließend den Docker-Befehl ENTRYPOINT ["./common"] aus.

Verpackungsbild

Docker-Build -t common.

Dies ist das Ende dieses Artikels über die Implementierung von zwei grundlegenden Images für die Docker-Bereitstellung von Go. Weitere relevante Inhalte zur Docker-Bereitstellung von Go-Images finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Methoden und Schritte zum Bereitstellen von Go-Projekten basierend auf Docker-Images

<<:  Vue implementiert den Lupeneffekt beim Tab-Umschalten

>>:  Einführung in die Vue-Grundlagen: Installation und Verwendung von Vuex

Artikel empfehlen

So stellen Sie Redis in Docker bereit und starten es

Redis im Docker bereitstellen Installieren Sie zu...

Zusammenfassung der Unterschiede zwischen SQL und NoSQL

Hauptunterschiede: 1. Typ SQL-Datenbanken werden ...

Allgemeine Befehle für MySQL-Autorisierung, Start und Dienststart

1. Vier Startmethoden: 1.mysqld Starten Sie den M...

Vue3 verwendet Axios Interceptor zum Drucken von Front-End-Protokollen

Inhaltsverzeichnis 1. Einleitung 2. Verwenden Sie...

Gemessenes Bild - HTTP-Anforderung

Bitte öffnen Sie die Testseite in einem gängigen ...

Mehrere Möglichkeiten zum Herunterfahren des Hyper-V-Dienstes unter Windows 10

Wenn Sie VMware Workstation zum Öffnen einer virt...

Beispielmethode zum Anzeigen der mit MySQL verbundenen IP-Adresse

Spezifische Methode: Öffnen Sie zuerst die Eingab...

Lösung für den Fehler bei der Verbindung mit MySQL in Docker

Szenario: Nach der Installation der neuesten Vers...

MySQL NULL-Datenkonvertierungsmethode (unbedingt lesen)

Wenn Sie MySQL zum Abfragen der Datenbank verwend...

Tutorial zum Erstellen einer VSCode+CMake+Clang+GCC-Umgebung unter Win10

Ich möchte C/C++ verwenden, um grundlegende Daten...

Detaillierte Erläuterung der MySQL-Mehrtabellenabfrage

Die Zeit vergeht immer überraschend schnell, ohne...