Pembungkusan ialah langkah yang sangat penting apabila menulis program di Golang dan menempatkannya ke persekitaran pengeluaran. Pembungkusan yang betul boleh mengelakkan masalah pergantungan, mempercepatkan penggunaan dan mengurangkan masalah yang tidak perlu. Artikel ini menerangkan cara menggunakan pembungkus Golang.
1 Fahami format fail boleh laku Go
Sebelum memulakan pembungkusan, fahami dulu format fail boleh laku Go. Go menyokong kompilasi silang, yang bermaksud bahawa aplikasi pada pelbagai platform seperti Linux, Windows dan Mac OS boleh disusun secara setempat Oleh itu, format fail boleh laku Go dibahagikan kepada dua jenis:
Memahami perkara ini penting untuk pembungkusan kerana kita perlu menjana binari yang sepadan untuk sistem pengendalian yang berbeza.
2. Gunakan arahan go build untuk membungkus
Sebelum pembungkusan, kita perlu menulis kod program Golang. Kemudian gunakan arahan berikut untuk membungkus:
go build -o outputName
Arahan ini akan menyusun semua .go
fail dalam folder semasa ke dalam fail boleh laku binari dan mengeluarkannya ke fail outputName
.
Sebagai contoh, kami mempunyai fail program main.go
, kami boleh memasukkan direktori di mana fail ini terletak, dan kemudian laksanakan arahan berikut:
go build -o main
Ini akan menjana program fail bernama main
Jalankan fail.
Walau bagaimanapun, arahan ini hanya boleh menyusun fail boleh laku secara setempat dan penggunaan ke mesin lain mungkin menghadapi masalah pergantungan. Oleh itu, kita perlu menggunakan kaedah pembungkusan yang lebih profesional.
3. Gunakan gox untuk penyusunan silang dan pembungkusan
gox ialah alat sumber terbuka yang digunakan untuk menyusun silang aplikasi Go pada berbilang sistem pengendalian dan seni bina CPU. Menggunakan gox, kami boleh membungkus fail boleh laku untuk sistem pengendalian yang berbeza pada satu masa dan menyepadukan fail yang sedang berjalan.
Sebelum memasang gox, kita perlu memasang alat dep (dep ialah pengurus pakej Go Cara pemasangan adalah seperti berikut:
go get -u github.com/golang/dep/cmd/dep
Selepas pemasangan selesai, kami). perlu menentukan kebergantungan projek , gunakan arahan berikut:
dep init
Seterusnya, kita boleh memasang alat gox. Hanya laksanakan arahan berikut:
go get -u github.com/mitchellh/gox
Selepas pemasangan selesai, kita boleh laksanakan arahan berikut dalam direktori akar projek untuk pembungkusan:
gox -osarch="目标操作系统和 CPU 架构" -output="输出目录/文件名" -ldflags "-s -w"
Antaranya, -osarch
parameter digunakan untuk menentukan Platform yang akan disusun; parameter -output
digunakan untuk menentukan direktori output dan nama fail, dan nama yang berbeza boleh dikeluarkan untuk berbilang sistem pengendalian, yang digunakan untuk menentukan bendera pemaut; boleh menjadikan fail binari yang dihasilkan lebih kecil. -ldflags
gox -osarch="linux/amd64 windows/amd64 darwin/amd64" -output="build/{{.OS}}-{{.Arch}}/AppName" -ldflags "-s -w"
. build
# 设置基础镜像 FROM golang:alpine as build # 将工作目录切换至 /app 下 WORKDIR /app # 拷贝代码到镜像中 COPY . . # 编译应用程序 RUN go build -o app # 部署阶段 FROM alpine # 可执行文件拷贝到新镜像 COPY --from=build /app/app /app/ # 暴露端口 EXPOSE 3000 # 运行程序 CMD ["/app/app"]
build
direktori, kemudian salin kod ke imej untuk penyusunan, dan akhirnya menjana fail boleh laku binari /app
. Peringkat app
部署
yang dijana oleh kompilasi peringkat build
ke dalam bekas, dedahkan port dan jalankan atur cara. app
docker build -t image_name .
ialah nama imej berpakej dan image_name
menunjukkan bahawa direktori semasa adalah tempat Dockerfile dan fail lain disimpan. .
docker run -p 3000:3000 -d image_name
digunakan untuk menentukan pemetaan port, dan -p
bermaksud menjalankan bekas di latar belakang. -d
Atas ialah kandungan terperinci Cara pakej golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!