Golang 項目開發(fā)結(jié)束后,如何部署到阿里云ECS,go項目部署簡單很多暖侨,不會像Java 那么復(fù)雜 需要配置很多環(huán)境冬念。
步驟如下(本文以beego項目為案例趁窃,go項目類似啦)
一 . 確認(rèn)服務(wù)器環(huán)境
登錄阿里云ECS,查看當(dāng)前服務(wù)器系統(tǒng)和CPU信息?
linux 常用命令: uname -a # 查看內(nèi)核/操作系統(tǒng)/CPU信息?
這里可以看到這個服務(wù)器的架構(gòu)是 x86_64 這個架構(gòu)亦稱 amd64.
● 6g是amd64的go編譯器急前,它生成的是.6文件醒陆。
● 386一般使用8g命令,它生成的一般是.8格式的文件裆针。
● 當(dāng)然還有一個5g的命令是用于arm的cpu刨摩,
同理amd64用6l寺晌,386用8l,arm用5l的鏈接器
明白了上面就開始交叉編譯go的可執(zhí)行程序了
編譯對應(yīng)平臺下的執(zhí)行文件
二 . 確認(rèn)當(dāng)前GO開發(fā)環(huán)境
使用 go env 命令:
(mac 下的 GOARCH 和 GOOS)
三. 交叉編譯
Golang支持交叉編譯,也就是說你在32位平臺的機(jī)器上開發(fā)澡刹,可以編譯生成64位平臺上的可執(zhí)行程序.mac 下可以編譯linux 下的執(zhí)行程序 又或者windows下的執(zhí)行程序
交叉編譯依賴下面幾個環(huán)境變量:
$GOARCH 目標(biāo)平臺(編譯后的目標(biāo)平臺)的處理器架構(gòu)(386呻征、amd64、arm)
$GOOS 目標(biāo)平臺(編譯后的目標(biāo)平臺)的操作系統(tǒng)(darwin罢浇、freebsd陆赋、linux、windows)
到源代碼目錄下執(zhí)行:
【beego項目編譯 】
Mac 下編譯linux 可執(zhí)行文件
bee pack -be GOOS=linux -be GOARCH=amd64
【Go項目】
Mac 下編譯 Linux 和 Windows 64位可執(zhí)行程序
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
Linux 下編譯 Mac 和 Windows 64位可執(zhí)行程序
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
Windows 下編譯 Mac 和 Linux 64位可執(zhí)行程序
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build main.go
--------------------------------------
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go
備注:不帶前面參數(shù)的 go build 只是編譯出開發(fā)環(huán)境適用的執(zhí)行文件己莺。
四? 部署到阿里云
經(jīng)過以上3步后 會產(chǎn)生 xxx.tar.gz文件(當(dāng)然 前提 不出現(xiàn)錯誤)奏甫,通過工具或命令將該壓縮文件發(fā)送到阿里云ECS指定的目錄下;然后 登錄阿里云ECS 并進(jìn)入相應(yīng)的目錄對發(fā)送過來的文件解壓縮凌受;
解壓縮成功后 可以看到2個文件:conf 阵子、目標(biāo)文件(可執(zhí)行文件),運(yùn)行目標(biāo)文件 胜蛉,運(yùn)行成功后結(jié)束挠进;
以上是Golang項目部署到阿里云基本流程