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

Schritt-für-Schritt-Anleitung zum Erstellen einer Kalenderkomponente mit React

Inhaltsverzeichnis Betriebswirtschaftlicher Hinte...

Mehrere Elemente in derselben Zeile unter Div in CSS rechtsbündig ausrichten

Methode 1: schweben: rechts Darüber hinaus wird d...

Detaillierte Erläuterung der MySQL-Hochverfügbarkeitsarchitektur

Inhaltsverzeichnis Einführung MySQL-Hochverfügbar...

Tipps zur Konvertierung von MySQL-Spalten in Zeilen (teilen)

Vorwort: Weil viele Geschäftstabellen Entwurfsmus...

Tutorial zur Installation von MYSQL8.X auf Centos

MySQL-Installation (4, 5, 6 können weggelassen we...

Ein paar Dinge zu favicon.ico (am besten im Stammverzeichnis ablegen)

Öffnen Sie eine beliebige Webseite, zum Beispiel ...

Ein Beispiel für die Umgestaltung eines Puzzlespiels mit vue3

Vorwort Es dauerte zwei Tage, um ein Puzzlespiel ...

So deinstallieren Sie MySQL 8.0 unter Linux

1. MySQL herunterfahren [root@localhost /]# Diens...