
crazymax/xgo本Docker镜像提供了预配置的Go语言CGO交叉编译环境,旨在解决CGO项目跨平台构建的复杂性。通过容器化工具链,开发者无需本地配置复杂依赖,即可为多种目标操作系统和架构编译带有CGO依赖的Go应用。
通过docker run启动容器,挂载项目目录并指定目标平台:
bashdocker run --rm -v $(pwd):/src -w /src crazy-max/xgo \ --targets=windows/amd64,linux/arm64,darwin/arm64 \ -o myapp \ ./cmd/myapp
| 参数 | 作用说明 |
|---|---|
-v $(pwd):/src | 将当前目录(项目根目录)挂载到容器内/src路径 |
-w /src | 设置容器工作目录为项目根目录 |
--targets | 指定目标平台列表,格式为OS/ARCH,多平台用逗号分隔 |
-o | 输出文件名前缀(最终文件名将自动附加平台标识,如myapp-windows-amd64.exe) |
./cmd/myapp | Go项目入口包路径 |
| 选项/环境变量 | 说明示例 |
|---|---|
--go | 指定Go版本:--go=1.21.0 |
--tags | 设置构建标签:--tags=netgo,osusergo |
--ldflags | 传递链接参数:--ldflags="-s -w -X main.version=1.0.0" |
--cgo | 显式控制CGO开关:--cgo=1(默认启用) |
创建docker-compose.yml简化重复构建:
yamlversion: '3' services: xgo: image: crazy-max/xgo volumes: - ./:/src working_dir: /src command: > --targets=linux/amd64,windows/amd64,darwin/amd64 --go=1.21.0 --ldflags="-s -w" -o myapp ./cmd/myapp
执行编译:
bashdocker-compose run --rm xgo
crazy-max/xgo:v0.15.0)确保稳定性完整文档及更新说明请参考GitHub仓库:[***]






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务