grafana/grafana-build本镜像为 Grafana 构建专用环境镜像,旨在提供标准化、可重复的 Grafana 编译构建环境。镜像集成了 Grafana 源码构建所需的完整依赖工具链(如 Go 编译器、Node.js、npm/yarn、Make 等),确保开发者或 CI/CD 系统能够在一致的环境中完成 Grafana 从源码到可执行程序/安装包的构建过程。
git clone 获取官方源码,或挂载本地修改后的源码目录)。bashdocker pull [镜像仓库地址]/grafana-build:latest # 替换为实际镜像仓库地址
通过挂载 Grafana 源码目录到容器内,执行构建命令:
bashdocker run -it --rm \ -v /path/to/local/grafana-source:/src/grafana `# 挂载本地源码目录到容器内/src/grafana` \ -v /path/to/build-output:/dist `# 挂载输出目录,存储构建产物` \ -e GRAFANA_VERSION=10.2.0 `# 指定构建版本(可选,默认读取源码内版本)` \ -e BUILD_TARGET=linux-amd64 `# 指定构建目标平台(可选,默认 linux-amd64)` \ [镜像仓库地址]/grafana-build:latest `# 镜像名称` \ make build-all `# 执行构建命令(默认命令,可省略)`
参数说明:
/path/to/local/grafana-source:本地 Grafana 源码目录绝对路径。/path/to/build-output:本地输出目录,构建后的二进制文件、安装包等将保存至此。GRAFANA_VERSION:覆盖源码内的版本号(如 10.2.0-custom),默认读取源码 package.json 或 CHANGELOG.md 中的版本。BUILD_TARGET:支持的目标平台格式为 <os>-<arch>,如 linux-arm64、darwin-amd64(需源码支持)。创建 docker-compose.yml:
yamlversion: '3.8' services: grafana-build: image: [镜像仓库地址]/grafana-build:latest volumes: - ./grafana-source:/src/grafana # 本地源码目录(相对路径) - ./build-output:/dist # 构建产物输出目录 environment: - GRAFANA_VERSION=10.2.0 - BUILD_TARGET=linux-amd64 - CACHE_ENABLED=true # 启用构建缓存(默认 true) command: make build-go # 仅构建 Go 后端(可选,默认 make build-all)
启动构建:
bashdocker-compose up
容器默认执行 make build-all(完整构建,包括前端、后端、文档),也可指定其他构建命令:
| 命令 | 说明 |
|---|---|
make build-go | 仅构建 Go 后端二进制文件 |
make build-js | 仅构建前端资源(JS/CSS,需 Node.js 环境) |
make package | 构建指定平台的安装包(如 .deb、.rpm) |
make clean | 清理构建缓存和中间产物 |
| 环境变量 | 可选值/示例 | 说明 |
|---|---|---|
GRAFANA_VERSION | 10.2.0、main | 构建版本号,覆盖源码内版本定义 |
BUILD_TARGET | linux-amd64、linux-arm64 | 构建目标平台,格式 <os>-<arch> |
CACHE_ENABLED | true(默认)、false | 是否启用构建缓存(加速重复构建) |
GO_PROXY | [***] | Go 模块代理地址(解决依赖拉取慢问题) |
NPM_REGISTRY | [***] | npm 镜像地址(加速前端依赖安装) |
构建完成后,输出目录(/dist)下的典型产物结构:
/dist ├── grafana-server # Go 后端二进制文件(对应 BUILD_TARGET 平台) ├── public # 前端静态资源(JS/CSS/HTML) ├── packages # 前端 npm 包(若执行 `make build-js`) └── dist # 安装包(如 .tar.gz、.deb,若执行 `make package`)
builder,UID 1000)对源码目录有读写权限,避免因权限不足导致构建失败。CACHE_ENABLED=false 或执行 make clean 命令。GO_PROXY、NPM_REGISTRY 配置国内镜像加速。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务