So verwenden Sie Golang zum Packen und Bereitstellen

PHPz
Freigeben: 2023-04-10 15:55:04
Original
3306 Leute haben es durchsucht

Mit der kontinuierlichen Weiterentwicklung der Internet-Technologie beginnen immer mehr Unternehmen, Golang zum Schreiben von Back-End-Diensten zu verwenden. Im Vergleich zu anderen Sprachen bietet Golang große Vorteile bei der gleichzeitigen Verarbeitung und Leistungsoptimierung. Paketierung und Bereitstellung sind ein wichtiger Bestandteil der effizienten Verwaltung von Golang-Projekten. Als Nächstes wird in diesem Artikel erläutert, wie Golang zum Packen und Bereitstellen verwendet wird.

1. Verwenden Sie Golang zum Verpacken

Golang selbst verfügt über eigene Verpackungstools und ist nicht auf Tools von Drittanbietern angewiesen. Um Golang zum Packen zu verwenden, müssen Sie nur die folgenden zwei Befehle ausführen:

go build -o ausgeben main.go

Unter diesen wird der Parameter -o verwendet, um den Namen der ausführbaren Ausgabedatei anzugeben, und main.go ist es das zu kompilierende Dokument.

Wenn Sie außerdem Anwendungen auf verschiedenen Betriebssystemen bereitstellen müssen, können Sie CGO für die Kreuzkompilierung verwenden. Wenn Sie beispielsweise eine Bereitstellung unter Windows benötigen, können Sie den folgenden Befehl ausführen:

CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o output.exe main.go

Dabei bedeutet CGO_ENABLED das Deaktivieren von CGO, weil Viele Bibliotheken sind CGO und können nicht unter Windows verwendet werden. GOOS bedeutet, dass das Zielbetriebssystem Windows ist. GOARCH bedeutet, dass die CPU-Architektur des Zielsystems AMD64 ist.

2. Docker zum Verpacken verwenden

golang hat auch bestimmte Vorteile bei der Containerisierung. Die Verwendung von Docker zum Packen und Bereitstellen kann die Anwendung von der Umgebung trennen, von der sie abhängt, und so die Portabilität und Konsistenz der Anwendung sicherstellen.

Zuerst müssen Sie eine Dockerfile-Datei schreiben, um den Erstellungs- und Bereitstellungsprozess der Anwendung zu beschreiben. Das Beispiel lautet wie folgt:

FROM golang:1.12-alpine

COPY . /app

WORKDIR /app

RUN go build -o main .

EXPOSE 8080

CMD ["./main"]

Dabei wird die FROM-Anweisung verwendet, um das Basisbild als golang:1.12-alpine anzugeben; die COPY-Anweisung wird verwendet, um alles zu kopieren Dateien im aktuellen Verzeichnis in das App-Verzeichnis verschieben; die RUN-Anweisung wird zum Ausführen des Go-Build-Befehls zum Erstellen des Ports verwendet; wird zum Starten der Anwendung verwendet.

Führen Sie dann den folgenden Befehl zum Packen aus:

docker build -t myapp:latest .

Dabei wird der Parameter -t verwendet, um den Imagenamen und die Versionsnummer anzugeben, und stellt das aktuelle Verzeichnis dar. Nachdem das Packen abgeschlossen ist, können Sie den Container mit dem folgenden Befehl starten:

docker run -d -p 8080:8080 myapp:latest

Unter anderem wird der Parameter -d verwendet, um den Container im Hintergrund auszuführen Der Parameter -p wird verwendet, um den 8080-Port im Container dem Port 8080 des Host-Computers zuzuordnen.

3. Bereitstellung mit Kubernetes

Kubernetes ist ein Open-Source-Container-Orchestrierungstool, mit dem die Bereitstellung, Erweiterung und Verwaltung von Containeranwendungen automatisiert werden kann. Die Bereitstellung mit Kubernetes verbessert die Zuverlässigkeit und Ausfallsicherheit von Anwendungen.

Zunächst müssen Sie eine Datei „deployment.yaml“ schreiben, um die Bereitstellungsimplementierung der Anwendung zu beschreiben. Das Beispiel lautet wie folgt:

apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
selector:

matchLabels:
  app: myapp
Nach dem Login kopieren

replicas: 3
template:

metadata:
  labels:
    app: myapp
spec:
  containers:
  - name: myapp
    image: myregistry/myapp:latest
    ports:
    - containerPort: 8080
Nach dem Login kopieren

Unter diesen stellt apiVersion die API-Version der Ressource dar und kind stellt den Ressourcentyp als Bereitstellung dar; das Namensfeld wird verwendet, um den Bereitstellungsnamen anzugeben; wird verwendet, um anzugeben, welche Pods ausgewählt werden sollen; das Feld „Vorlage“ wird verwendet, um die Vorlage des Pods anzugeben; Das Feld „Ports“ wird verwendet, um das Container-Image anzugeben. Das Feld „Ports“ wird verwendet, um den Port anzugeben, auf dem der Container lauscht.

Führen Sie dann den folgenden Befehl zum Bereitstellen aus:

kubectl apply -f distribution.yaml

Dabei wird der Parameter -f verwendet, um den Pfad der Bereitstellungsdatei anzugeben. Nachdem die Bereitstellung abgeschlossen ist, können Sie den Bereitstellungsstatus mit dem folgenden Befehl anzeigen:

kubectl get pods

Abschließend können Sie mit dem folgenden Befehl ein Dienstobjekt erstellen, um den Port im Container für externe Benutzer verfügbar zu machen:

kubectl Expose Deployment myapp --type=LoadBalancer --name=myapp-service

Dabei wird der Parameter --type verwendet, um den Servicetyp anzugeben, der angibt, dass der Service extern über den Load Balancer des Cloud-Anbieters verfügbar gemacht wird. Der Parameter -name wird verwendet, um den Dienstnamen anzugeben.

Zusammenfassung

In diesem Artikel werden drei Methoden zur Verwendung von Golang für die Verpackung und Bereitstellung vorgestellt: Verwendung von Golangs eigenem Verpackungstool, Verwendung von Docker für die Verpackung und Verwendung von Kubernetes für die Bereitstellung. Diese Methoden können grundsätzlich die Anforderungen verschiedener Szenarien erfüllen. Ich hoffe, sie können Ihnen als Referenz für die Entwicklung und Bereitstellung von Golang-Projekten dienen.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Golang zum Packen und Bereitstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage