goreleaser/goreleaser-proGoReleaser 是一款专注于简化软件发布流程的工具,旨在处理发布过程中的复杂性,使开发者能够专注于核心软件的构建。其 Docker 镜像提供了无需本地安装依赖即可运行 GoReleaser 的便捷方式,确保在各种环境中(包括本地开发和 CI/CD 系统)的一致性执行。
兼容多种编程语言项目的发布流程,包括:
repo 权限)bashdocker run --rm \ -v $(pwd):/workspace \ -w /workspace \ -e GITHUB_TOKEN=<your-github-token> \ goreleaser/goreleaser release
bashdocker run --rm \ -v $(pwd):/workspace \ -w /workspace \ goreleaser/goreleaser build --snapshot --clean
bashdocker run --rm \ -v $(pwd):/workspace \ -w /workspace \ goreleaser/goreleaser check
创建 docker-compose.yml 文件:
yamlversion: '3.8' services: goreleaser: image: goreleaser/goreleaser volumes: - .:/workspace working_dir: /workspace environment: - GITHUB_TOKEN=${GITHUB_TOKEN} # 可选:其他代码托管平台令牌 # - GITLAB_TOKEN=${GITLAB_TOKEN} command: release --clean
运行方式:
bashexport GITHUB_TOKEN=<your-token> docker-compose up
GoReleaser 通过项目根目录下的 .goreleaser.yml 文件定义发布配置。基本结构示例:
yaml# .goreleaser.yml project_name: myapp version: 1.0.0 builds: - env: - CGO_ENABLED=0 goos: - linux - darwin - windows goarch: - amd64 - arm64 archives: - format: tar.gz name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}" files: - LICENSE - README.md release: github: owner: my-org repo: myapp draft: false prerelease: false
| 环境变量 | 描述 | 必要性 |
|---|---|---|
GITHUB_TOKEN | GitHub 访问令牌,用于发布资产 | 发布时必填 |
GITLAB_TOKEN | GitLab 访问令牌 | GitLab 项目必填 |
GITEA_TOKEN | Gitea 访问令牌 | Gitea 项目必填 |
GORELEASER_KEY | GPG 签名密钥(ASCII 格式) | 签名时必填 |
GORELEASER_PASSPHRASE | GPG 密钥密码 | 签名时可选 |
DEBUG | 启用调试模式(设置为 true) | 可选 |
| 命令 | 描述 |
|---|---|
release | 执行完整发布流程 |
release --snapshot | 生成快照版本(不创建 Git 标签) |
build | 仅执行构建步骤(不发布) |
check | 验证配置文件有效性 |
init | 生成初始配置文件模板 |
changelog | 生成或更新 CHANGELOG.md 文件 |
完整文档托管于 [***]
项目遵循 Contributor Covenant 行为准则,贡献前请参考 贡献指南。


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