Grafana Publisher 是一个用于将插件发布到 grafana.com 的工具,支持通过命令行或在 CircleCI 环境中运行。该工具提供了一系列命令,覆盖插件发布流程的各个环节,包括环境验证、信息查询、暂存发布和正式发布等功能。
运行不带参数的应用程序将显示帮助信息:
bashdocker run grafana/integration-plugin-publisher:latest
| 选项 | 缩写 | 描述 |
|---|---|---|
| --version | -V | 输出版本号 |
| --auto | -a | 无交互模式运行,自动回答所有提示 |
| --log [logfile] | -l | 日志输出到文件 |
| --loglevel [info|debug] | 设置日志级别 (info 或 debug) | |
| --dryrun | -d | 试运行模式,不执行实际操作 |
| --help | -h | 显示帮助信息 |
| 环境变量 | 用途 |
|---|---|
| GCOM_PUBLISH_TOKEN | 具有发布权限的 grafana.com API 密钥 |
| GCOM_ADMIN_TOKEN | 具有管理员权限的 grafana.com API 密钥(仅用于 setdependency 命令,普通发布不需要) |
| GITHUB_TOKEN | 具有仓库读写权限的 GitHub API 令牌 |
| GCLOUD_SERVICE_KEY | 具有 GCS 集成 artifacts 存储桶写入权限的 JSON 密钥内容 |
这些变量值可在 1Password 中找到,并且在每个 CircleCI 项目中已预设。
| 命令 | 描述 |
|---|---|
| validate | 检测运行应用程序所需的环境设置 |
| info | 收集并显示指定本地插件的信息 |
| inforemote | 收集并显示指定远程插件的信息 |
| stage | 执行插件到暂存环境的发布(当前未实现) |
| stageremote | 执行远程插件到暂存环境的发布(当前未实现) |
| publish | 执行本地插件到生产环境的发布 |
| publishremote | 执行远程插件到生产环境的发布 |
| setdependency | 设置插件的 grafanaDependency 属性 (>=7.0.0 格式) |
| help | 显示命令帮助信息 |
validate
验证环境变量是否存在且能正常工作,dryrun 和 publish 命令会自动运行此验证。
bashdocker run \ -e GCOM_PUBLISH_TOKEN=$GCOM_PUBLISH_TOKEN \ -e GITHUB_TOKEN=$GITHUB_TOKEN \ -e GCLOUD_SERVICE_KEY=$GCLOUD_SERVICE_KEY \ grafana/integration-plugin-publisher:latest \ grafana-publisher.js validate
输出示例:
OK: Publish to GCOM Key found in environment setting OK: GCS Authentication found in environment setting OK: GIT Key found in environment setting [2020-07-25T05:51:54.047] [DEBUG] publisher - GCOM testing GET to https://grafana.com/api/plugins/table OK: GCOM is working Validation Successful
info
获取本地仓库中已发布插件的摘要信息,需要本地存在 plugin.json 文件且与插件 ID 匹配。
bashdocker run \ -v $(pwd):/workspace \ -w /workspace \ grafana/integration-plugin-publisher:latest \ grafana-publisher info grafana-newrelic-datasource dist/plugin.json 2.0.5
inforemote
获取已发布插件的摘要信息,通过插件 ID 标识,可指定版本(默认为最新版本)。
bashdocker run \ -e GITHUB_TOKEN=$GITHUB_TOKEN \ grafana/integration-plugin-publisher:latest \ grafana-publisher inforemote grafana-newrelic-datasource 2.0.5
publish
执行本地插件到生产环境的发布,这是应用程序的主要功能。
bashdocker run \ -v $(pwd):/workspace \ -w /workspace \ -e GCOM_PUBLISH_TOKEN=$GCOM_PUBLISH_TOKEN \ -e GITHUB_TOKEN=$GITHUB_TOKEN \ -e GCLOUD_SERVICE_KEY=$GCLOUD_SERVICE_KEY \ grafana/integration-plugin-publisher:latest \ grafana-publisher publish grafana-newrelic-datasource 2.0.5 dist/plugin.json
publishremote
通过指定仓库 URL 和版本号,无需本地检出代码即可将插件发布到生产环境。
bashdocker run \ -e GCOM_PUBLISH_TOKEN=$GCOM_PUBLISH_TOKEN \ -e GITHUB_TOKEN=$GITHUB_TOKEN \ -e GCLOUD_SERVICE_KEY=$GCLOUD_SERVICE_KEY \ grafana/integration-plugin-publisher:latest \ grafana-publisher publishremote https://github.com/grafana/grafana-polystat-panel 1.0.0
setdependency
设置插件的 grafanaDependency 属性,值的格式应为 >=7.0.0。
bashdocker run \ -e GCOM_PUBLISH_TOKEN=$GCOM_PUBLISH_TOKEN \ -e GCOM_ADMIN_TOKEN=$GCOM_ADMIN_TOKEN \ grafana/integration-plugin-publisher:latest \ grafana-publisher setdependency grafana-newrelic-datasource 2.0.5 '>=7.0.0'
bashdocker run \ -e GCOM_PUBLISH_TOKEN=$GCOM_PUBLISH_TOKEN \ -e GITHUB_TOKEN=$GITHUB_TOKEN \ -e GCLOUD_SERVICE_KEY=$GCLOUD_SERVICE_KEY \ grafana/integration-plugin-publisher:latest \ grafana-publisher validate
yaml# .circleci/config.yml 片段 jobs: publish-plugin: docker: - image: grafana/integration-plugin-publisher:latest environment: - GCOM_PUBLISH_TOKEN: $GCOM_PUBLISH_TOKEN - GITHUB_TOKEN: $GITHUB_TOKEN - GCLOUD_SERVICE_KEY: $GCLOUD_SERVICE_KEY steps: - checkout - run: name: Publish plugin to grafana.com command: grafana-publisher --auto --loglevel debug publish my-plugin-id $CIRCLE_TAG dist/plugin.json
bash# 测试发布(dryrun 模式) docker run \ -v $(pwd):/workspace \ -w /workspace \ -e GCOM_PUBLISH_TOKEN=$GCOM_PUBLISH_TOKEN \ -e GITHUB_TOKEN=$GITHUB_TOKEN \ -e GCLOUD_SERVICE_KEY=$GCLOUD_SERVICE_KEY \ grafana/integration-plugin-publisher:latest \ grafana-publisher --dryrun --loglevel debug publish grafana-newrelic-datasource 2.0.5 dist/plugin.json
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务