stagex/goGo编程语言编译器镜像是一个预配置了Go编译器及相关工具链的Docker镜像,旨在提供隔离、一致的Go开发和编译环境。该镜像无需在主机系统安装Go,可直接用于编译、测试Go应用程序,支持多种Go版本,适用于开发、持续集成/持续部署(CI/CD)流程及容器化构建场景。
1.21、1.20、alpine等),满足不同项目的版本需求go build)、测试工具(go test)、模块管理(go mod)、文档生成(godoc)等全套开发工具1.21-alpine)体积更小,适合资源受限环境GOPATH、GOROOT、GOPROXY等)将本地当前目录的Go代码挂载到容器中,并执行编译:
bash# 编译当前目录下的main.go,输出可执行文件myapp到当前目录 docker run --rm -v $(pwd):/app -w /app golang:1.21 go build -o myapp main.go
--rm:容器退出后自动删除-v $(pwd):/app:将主机当前目录挂载到容器内的/app目录-w /app:设置容器工作目录为/appgolang:1.21:使用Go 1.21版本的镜像(可替换为其他版本标签)go build -o myapp main.go:执行编译命令,输出可执行文件myappbashdocker run --rm -v $(pwd):/app -w /app golang:1.21 go test ./... -v
使用多阶段构建减小最终镜像体积(编译阶段使用golang镜像,运行阶段使用Alpine):
dockerfile# 阶段1:编译阶段(使用golang镜像) FROM golang:1.21-alpine AS builder WORKDIR /app COPY . . RUN go mod download RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o myapp . # 阶段2:运行阶段(使用Alpine) FROM alpine:3.18 RUN apk --no-cache add ca-certificates WORKDIR /root/ COPY --from=builder /app/myapp . EXPOSE 8080 CMD ["./myapp"]
创建docker-compose.yml文件,定义Go编译服务:
yamlversion: '3' services: go-build: image: golang:1.21 volumes: - ./:/app working_dir: /app command: go build -o myapp main.go
运行构建:
bashdocker-compose up
可通过-e参数设置环境变量自定义Go环境:
| 环境变量 | 说明 | 默认值 |
|---|---|---|
GOPATH | Go工作目录,包含src, pkg, bin子目录 | /go |
GOROOT | Go安装目录 | /usr/local/go |
GO111MODULE | 是否启用Go模块支持 | on |
GOPROXY | Go模块代理地址 | [***] |
GOSUMDB | Go校验和数据库地址 | sum.golang.org |
示例:使用国内代理加速模块下载
bashdocker run --rm -v $(pwd):/app -w /app -e GOPROXY=[***] golang:1.21 go mod download
镜像提供多种标签,用于指定Go版本和基础镜像:
{version}:基于Debian的稳定版本(如1.21, 1.20){version}-alpine:基于Alpine的轻量版本(体积更小,如1.21-alpine){version}-windowsservercore:基于Windows Server Core的版本(Windows环境)latest:最新稳定版本(不建议生产环境使用,可能随Go版本更新变化)建议生产环境明确指定具体版本标签(如1.21),避免因版本更新导致构建问题。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像服务
在 Docker Desktop 配置镜像
Docker Compose 项目配置
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
MacOS OrbStack 容器配置
在宝塔面板一键配置镜像
Synology 群晖 NAS 配置
飞牛 fnOS 系统配置镜像
极空间 NAS 系统配置服务
爱快 iKuai 路由系统配置
绿联 NAS 系统配置镜像
QNAP 威联通 NAS 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
来自真实用户的反馈,见证轩辕镜像的优质服务