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

Beheben Sie den Fehler beim Löschen von MySQL-Benutzern

Als der Autor MySQL zum Hinzufügen eines Benutzer...

Mysql GTID Mha-Konfigurationsmethode

Gtid + Mha + Binlog-Serverkonfiguration: 1: Testu...

Detaillierte Erklärung der Linux-Befehle und der Dateisuche

1. Führen Sie eine Dateinamensuche durch which (S...

MySQL-Datenbank-Master-Slave-Replikation und Lese-/Schreibtrennung

Inhaltsverzeichnis 1. Master-Slave-Replikation Ma...

Dieser Artikel zeigt Ihnen, was Vite mit der Anfrage des Browsers macht

Inhaltsverzeichnis Funktionsprinzip: Was macht de...

So verwenden Sie CSS, um mehrere Bilder horizontal in der Mitte anzuzeigen

Lassen Sie mich zunächst über die Implementierung...

Verwendung des Linux-Befehls ls

1. Einleitung Der Befehl ls dient zum Anzeigen de...

Beispielanalyse der Intervallberechnung von MySQL-Datum und -Uhrzeit

Dieser Artikel beschreibt anhand eines Beispiels ...

Implementierung des WeChat-Applet-Nachrichten-Pushs in Nodejs

Auswählen oder Erstellen einer Abonnementnachrich...

So zeigen Sie Linux-SSH-Dienstinformationen und den Ausführungsstatus an

Es gibt viele Artikel zur SSH-Serverkonfiguration...

Eine kurze Diskussion über Makrotasks und Mikrotasks in js

Inhaltsverzeichnis 1. Über JavaScript 2. JavaScri...

Designtheorie: Die Grundlagen der Schriftgestaltung

<br />Worte sind das unvermeidliche Produkt ...

Schaltflächen und Dropdown-Menüs für Studiennotizen in Bootstrap 3.0

Der vorherige Artikel war eine einfache Überprüfu...