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
replicas: 3
template:
metadata: labels: app: myapp spec: containers: - name: myapp image: myregistry/myapp:latest ports: - containerPort: 8080
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!