grafana/grafana-plugin-ci该Docker镜像专为Grafana插件开发设计,提供标准化的CI(持续集成)构建环境,解决不同CI平台间环境差异导致的构建问题。通过预装插件开发所需工具链,确保插件构建、测试、打包流程在各类CI系统(如GitHub Actions、GitLab CI、Jenkins)中保持一致,提升开发效率。
9.5.0、10.0.0),适配插件对不同Grafana版本的兼容性需求npm run build、grafana-cli plugin:build)npm test、Go测试)和集成测试,确保插件功能符合预期从Docker仓库拉取指定版本镜像(推荐使用具体Grafana版本标签而非latest,确保构建一致性):
bash# 拉取Grafana 9.5.0版本对应的构建镜像 docker pull grafana/plugin-ci:9.5.0
挂载插件代码目录并执行构建命令,示例:
bash# 假设当前目录为插件源代码根目录 docker run --rm \ -v $(pwd):/plugin \ # 挂载本地插件代码到容器内/plugin目录 -w /plugin \ # 设置工作目录为插件代码目录 -e GRAFANA_VERSION=9.5.0 \ # 指定目标Grafana版本(与镜像标签匹配) grafana/plugin-ci:9.5.0 \ # 使用对应版本镜像 sh -c "npm install && npm run build && grafana-cli plugin:build" # 构建命令序列
通过docker-compose.yml简化CI环境配置:
yamlversion: '3' services: plugin-builder: image: grafana/plugin-ci:9.5.0 volumes: - ./:/plugin # 挂载插件代码目录 - npm-cache:/root/.npm # 持久化npm缓存,加速依赖安装 working_dir: /plugin environment: - GRAFANA_VERSION=9.5.0 - PLUGIN_SIGN_KEY=/run/secrets/sign-key # 签名密钥路径(通过Docker Secrets挂载) command: > sh -c "npm install && npm run test && grafana-cli plugin:build && grafana-cli plugin:sign --key ${PLUGIN_SIGN_KEY}" # 构建+测试+签名流程 volumes: npm-cache: # 定义npm缓存卷
| 环境变量 | 描述 | 默认值 |
|---|---|---|
GRAFANA_VERSION | 目标Grafana版本,用于兼容性检查和工具链匹配 | latest |
NODE_VERSION | Node.js版本(前端开发),支持16.x/18.x/20.x | 18.x |
GO_VERSION | Go版本(后端开发),支持1.19/1.20/1.21 | 1.20 |
PLUGIN_DIR | 容器内插件代码根目录路径 | /plugin |
PLUGIN_SIGN_KEY | Grafana插件签名私钥文件路径(用于grafana-cli plugin:sign) | 无 |
在GitHub Actions工作流中集成镜像,实现自动构建:
yamlname: Plugin CI Build on: [push, pull_request] jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Build plugin with CI image uses: docker://grafana/plugin-ci:9.5.0 with: args: sh -c "npm install && npm run build && grafana-cli plugin:build" env: GRAFANA_VERSION: 9.5.0 - name: Upload build artifact uses: actions/upload-artifact@v3 with: name: plugin-build path: dist/*.zip # 上传构建生成的插件包
9.5.0)而非latest,避免因镜像更新导致构建环境变化node_modules、Go模块缓存),可显著减少构建时间manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务