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

JavaScript-Closures erklärt

Inhaltsverzeichnis 1. Was ist ein Abschluss? 1.2 ...

Auf Wiedersehen Docker: So wechseln Sie in 5 Minuten zu Containerd

Docker ist eine sehr beliebte Containertechnologi...

Detaillierte Erläuterung der Verwendung des Linux-Zeitbefehls

1. Befehlseinführung Mit „time“ werden die für di...

Nützliche Codes zum Erstellen von Webseiten

<br />Wie kann ich die Bildlaufleiste auf de...

Über das WeChat-Gleitproblem des UniApp-Editors

Das Uniapp-Applet wird ein ähnliches Dropdown-Pro...

Verwenden Sie CSS, um ein Datei-Upload-Muster zu zeichnen

Wenn Sie es wären, wie würden Sie es erreichen, w...

Javascript-Countdown-Eingabeaufforderungsfeld

In diesem Artikelbeispiel wird der spezifische Ja...

So ändern Sie die Standardcodierung von MySQL in Linux

Wenn während des Entwicklungsprozesses nach der W...

Sieben Prinzipien eines guten Designers (2): Farbgebrauch

<br />Vorheriger Artikel: Sieben Prinzipien ...

HTML Table Tag Tutorial (47): Verschachtelte Tabellen

<br />Der Schriftsatz auf der Seite erfolgt ...