Golang项目在Ubuntu上的打包流程如下:
安装Go环境
sudo apt update && sudo apt install golang-go
验证安装:go version
。
编写代码
在项目根目录创建main.go
文件,例如:
package main
import "fmt"
func main() { fmt.Println("Hello, World!") }
```。
构建可执行文件
go build -o myapp
CGO_ENABLED=0 go build -o myapp
GOOS=linux GOARCH=amd64 go build -o myapp # 适配Linux
```。
压缩二进制文件(可选)
安装upx
并压缩:
sudo apt install upx
upx --best myapp
```。
自动化打包(可选)
Makefile
,内容示例:build:
go build -o myapp
运行:make build
。build.sh
,内容示例:#!/bin/bash
go build -o myapp
赋予执行权限:chmod +x build.sh
,运行:./build.sh
。Docker打包(可选)
创建Dockerfile
:
FROM golang:latest
WORKDIR /app
COPY . .
RUN go build -o myapp
CMD ["./myapp"]
构建镜像:docker build -t myapp .
,运行容器:docker run -d -p 8080:8080 myapp
。
分发部署
使用tar
打包文件:
tar -czvf myapp.tar.gz myapp
```。
说明:
CGO_ENABLED=0
构建静态链接文件,避免依赖问题。GOOS
和GOARCH
指定目标系统。