grafana/build-container该容器镜像专为构建 Grafana 应用程序设计,提供了预配置的构建环境,包含 Grafana 编译所需的依赖工具链、开发环境及构建脚本,旨在简化 Grafana 源码的本地构建、自定义版本编译及 CI/CD 流程集成。
通过 docker run 直接启动容器,挂载本地 Grafana 源码目录并执行构建命令:
bashdocker run -it --rm \ -v /path/to/local/grafana-source:/grafana \ # 挂载本地 Grafana 源码目录至容器内 /grafana -v /path/to/build-output:/grafana/bin \ # 挂载构建产物目录(可选,持久化输出) -e GRAFANA_BRANCH="main" \ # 指定构建的源码分支(可选) grafana/build-container:latest \ # 镜像名称(示例) make build # 执行构建命令
创建 docker-compose.yml 文件,定义构建环境:
yamlversion: '3.8' services: grafana-builder: image: grafana/build-container:latest volumes: - ./grafana-source:/grafana # 本地源码目录挂载 - ./grafana-bin:/grafana/bin # 构建产物持久化 - ~/.ssh:/root/.ssh # 挂载 SSH 密钥(如需拉取私有依赖,可选) environment: - GRAFANA_BRANCH=main # 源码分支 - GO_VERSION=1.21 # 覆盖 Go 版本(可选,默认内置兼容版本) - NODE_VERSION=18 # 覆盖 Node.js 版本(可选,默认内置兼容版本) command: make build # 启动容器后执行的构建命令
启动命令:
bashdocker-compose up
| 环境变量 | 描述 | 默认值 |
|---|---|---|
GRAFANA_BRANCH | 指定构建的 Grafana 源码分支(需确保本地源码目录已切换至对应分支) | main |
GO_VERSION | 覆盖容器内的 Go 编译器版本(需镜像支持,部分镜像可能固定版本) | 镜像内置版本(如 1.21) |
NODE_VERSION | 覆盖容器内的 Node.js 版本(用于前端资源构建) | 镜像内置版本(如 18) |
BUILD_TARGET | 指定构建目标(如 linux-amd64、darwin-arm64),支持多平台构建 | linux-amd64 |
SKIP_FRONTEND | 是否跳过前端资源构建(true/false),仅编译后端时使用 | false |
| 挂载路径(容器内) | 用途说明 | 本地路径示例 |
|---|---|---|
/grafana | Grafana 源码目录,容器内构建命令将基于此目录执行 | /home/user/grafana-source |
/grafana/bin | 构建产物输出目录,二进制文件(如 grafana-server)将生成于此 | /home/user/grafana-bin |
/root/.npm | npm 缓存目录(可选),加速前端依赖安装 | ~/.npm |
/root/go/pkg | Go 模块缓存目录(可选),加速 Go 依赖下载 | ~/.go/pkg |
容器启动后,可通过以下命令执行构建操作:
bashmake build
bashmake server
bashmake docker-build
bashmake test
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务