So verwenden Sie Golang Build, um Anwendungen schnell bereitzustellen

PHPz
Freigeben: 2023-04-25 15:48:35
Original
652 Leute haben es durchsucht

Mit der rasanten Entwicklung des Internets wird auch unsere Softwareentwicklung ständig weiterentwickelt. In der modernen Softwareentwicklung ist eine schnelle Anwendungsbereitstellung von entscheidender Bedeutung. Heutzutage beginnen immer mehr Entwickler, Golang für die Entwicklung zu verwenden, was von der Effizienz und Einfachheit von Golang profitiert. In diesem Artikel stellen wir vor, wie Sie Golang Build verwenden, um Ihre Anwendung schnell bereitzustellen.

  1. Einführung in Golang Build

Golang Build ist ein offiziell von Golang bereitgestelltes Tool. Golang Build kompiliert Golang-Programme in ausführbare Dateien und kann entsprechend verschiedenen Betriebssystemen entsprechende lokale ausführbare Dateien generieren. Für die plattformübergreifende Ausführung von Anwendungen führt Golang Build einige hervorragende Optimierungen und Anpassungen basierend auf den Eigenschaften verschiedener Plattformen durch.

  1. Verwendung von Golang Build

Golang Build kann über den folgenden Befehl verwendet werden:

go build <package>
Nach dem Login kopieren

Unter diesen ist <package> der Pfad des Pakets, das kompiliert werden muss kann ein lokaler Pfad sein oder ist ein Remote-Repository. <package>是需要编译的package的路径,可以是本地path,也可以是远程的repository。

例如,以下命令将编译当前路径下的main.go文件:

go build main.go
Nach dem Login kopieren

若当前路径下有多个文件,也可以使用以下的命令来编译所有文件:

go build .
Nach dem Login kopieren
  1. Golang build的交叉编译

Golang build除支持本地编译外,还支持交叉编译。也就是说,在Linux环境下编译Windows环境下的程序,或者在Mac环境下编译Linux环境下的程序。

这需要使用到环境变量GOOSGOARCH,它们分别指定需要编译的操作系统和CPU架构。

例如,以下命令将在Windows上编译Linux amd64架构的程序:

SET GOOS=linux
SET GOARCH=amd64
go build
Nach dem Login kopieren

需要注意的是,交叉编译需要更改环境变量才能进行。具体如何更改环境变量将不在本文的讨论范围之内。

  1. Golang build的静态编译

Golang build还支持静态编译,这会将所有需要使用的依赖库都编译到可执行文件中,无需再次安装。

例如,在Linux系统中静态编译Go程序,可以输入以下命令:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -o main .
Nach dem Login kopieren

补充说明一下命令中的参数:

  • CGO_ENABLED=0:禁用CGO
  • GOOS=linux:编译后的操作系统是Linux
  • GOARCH=amd64:编译后的CPU架构是amd64
  • -a:强制编译所有package
  • -installsuffix cgo:指定额外的后缀
  • -o main:将编译后的程序存储为main
  • .
  • Zum Beispiel kompiliert der folgende Befehl die Datei main.go im aktuellen Pfad:
FROM docker.io/library/golang:1.14-alpine

WORKDIR /app

COPY . .

RUN go build -o main .

EXPOSE 8080

CMD ["./main"]
Nach dem Login kopieren
    Wenn sich im aktuellen Pfad mehrere Dateien befinden, können Sie auch den folgenden Befehl verwenden, um alle Dateien zu kompilieren:
  1. rrreee
  2. Kreuzkompilierung des Golang-Builds

Zusätzlich zur Unterstützung der lokalen Kompilierung unterstützt Golang-Build auch die Kreuzkompilierung. Mit anderen Worten: Kompilieren Sie das Programm in der Windows-Umgebung in der Linux-Umgebung oder kompilieren Sie das Programm in der Linux-Umgebung in der Mac-Umgebung.

Dies erfordert die Verwendung der Umgebungsvariablen GOOS und GOARCH, die jeweils das Betriebssystem und die CPU-Architektur angeben, die kompiliert werden müssen.
  1. Zum Beispiel kompiliert der folgende Befehl ein Programm für die Linux-amd64-Architektur unter Windows:
  2. rrreee
Es ist zu beachten, dass die Kreuzkompilierung eine Änderung der Umgebungsvariablen erfordert, um fortzufahren. Die genaue Änderung von Umgebungsvariablen geht über den Rahmen dieses Artikels hinaus.

    Statische Kompilierung des Golang-Builds🎜🎜🎜Golang-Build unterstützt auch die statische Kompilierung, die alle abhängigen Bibliotheken, die verwendet werden müssen, in die ausführbare Datei kompiliert, ohne sie erneut installieren zu müssen. 🎜🎜Um beispielsweise ein Go-Programm in einem Linux-System statisch zu kompilieren, können Sie den folgenden Befehl eingeben: 🎜rrreee🎜Zusätzliche Erläuterung der Parameter im Befehl: 🎜
    🎜CGO_ENABLED=0 : CGO deaktivieren🎜🎜GOOS=linux: Das kompilierte Betriebssystem ist Linux🎜🎜GOARCH=amd64: Die kompilierte CPU-Architektur ist amd64🎜🎜-a code>: Obligatorisch Alle Pakete kompilieren 🎜🎜<code>-installsuffix cgo: Zusätzliches Suffix angeben 🎜🎜-o main: Das kompilierte Programm als main speichern🎜🎜. Code >: Kompilieren Sie alle Codes unter dem aktuellen Pfad 🎜🎜🎜🎜Docker of Golang Build🎜🎜🎜Nachdem Golang Build zum Kompilieren des Go-Programms verwendet wurde, kann die generierte ausführbare Datei in Docker gepackt werden, was die Bereitstellung und Ausführung des Programms erleichtert . Das Folgende ist ein einfaches Beispiel für eine Docker-Datei: 🎜rrreee🎜Diese Docker-Datei verwendet das offizielle golang:1.14-alpine als Basis-Image, kopiert dann alle Dateien im aktuellen Pfad nach Docker, kompiliert das Go-Programm in Docker und stellt dann den Anwendungs-Port bereit 8080 wird die kompilierte ausführbare Datei schließlich in Docker ausgeführt. 🎜🎜🎜Zusammenfassung🎜🎜🎜In diesem Artikel werden die Verwendung von Golang Build und verwandte Techniken vorgestellt, einschließlich Cross-Compilation, statische Kompilierung und die Verwendung von Docker. Durch die Bereitstellungsmethode von Golang Build können wir Golang-Programme bequemer und schneller bereitstellen und ausführen. 🎜

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Golang Build, um Anwendungen schnell bereitzustellen. 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