阅读量:2
以下是在Ubuntu上打包Golang应用的实用技巧:
-
环境准备
- 使用
apt安装Go:sudo apt update && sudo apt install golang。 - 配置环境变量(可选):在
~/.bashrc中添加export PATH=$PATH:/usr/local/go/bin,并执行source ~/.bashrc。
- 使用
-
高效编译
- 基础编译:
go build -o app_name,生成可执行文件。 - 静态链接:添加
CGO_ENABLED=0,生成不依赖C库的二进制文件,适合无Go环境的系统:
CGO_ENABLED=0 go build -o app_name。 - 交叉编译:通过设置
GOOS和GOARCH生成其他平台可执行文件,例如:
GOOS=linux GOARCH=amd64 go build -o app_name(在Ubuntu生成Linux 64位包)。
- 基础编译:
-
优化打包体积
- 使用upx压缩:安装
upx后,对二进制文件执行upx --best app_name,可减少约50%-70%体积。 - 多阶段Docker构建:通过Docker多阶段构建,仅复制编译后的二进制文件到最小化镜像(如
debian:buster-slim),降低镜像体积。
- 使用upx压缩:安装
-
依赖管理
- 使用
go mod管理依赖,确保版本一致性:- 初始化:
go mod init - 清理无用依赖:
go mod tidy。
- 初始化:
- 使用
-
部署与分发
- Docker打包:通过Dockerfile构建镜像,包含编译步骤和运行环境,支持跨平台部署。
- 创建启动脚本:编写
start.sh脚本(如#!/bin/bash ./app_name),简化启动流程。 - 打包为.deb(可选):通过
dpkg-deb工具将应用打包为Ubuntu可安装的.deb包。
-
注意事项
- 静态编译时需注意部分依赖库可能不支持,需测试验证。
- 多阶段Docker构建中,编译阶段使用
-installsuffix cgo避免冲突。
参考来源:
以上就是关于“golang于ubuntu打包有何技巧”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm