
devatherock/artifactory-badge为JFrog Artifactory中托管的Docker仓库生成徽章的工具
artifactory-badge是一款专为JFrog Artifactory中托管的Docker仓库设计的徽章生成工具,能够生成展示镜像下载量、大小、层数及最新版本等信息的徽章,方便集成到项目文档、README等场景,直观呈现Docker镜像的关键指标。
适用于需要在项目README、文档或监控面板中展示Artifactory托管Docker镜像相关指标的场景,帮助开发团队和用户快速了解镜像的下载量、版本状态等关键信息。
bashdocker run --rm \ -p 8080:8080 \ -e ARTIFACTORY_URL=[***] \ -e ARTIFACTORY_API_KEY=your-api-key \ devatherock/artifactory-badge:1.1.0
用于设置日志级别等高级配置:
yamllogger: levels: io.micronaut.http.server.netty.NettyRequestLifecycle: DEBUG # 可选,启用HTTP服务器访问日志
| 名称 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|
| ARTIFACTORY_URL | 是 | (无) | 托管Docker仓库的JFrog Artifactory URL |
| ARTIFACTORY_API_KEY | 是 | (无) | 用于与Artifactory REST API交互的API密钥 |
| ARTIFACTORY_EXCLUDED_FOLDERS | 否 | /_uploads | 不被视为Docker标签的子文件夹 |
| ARTIFACTORY_DATE_FORMAT | 否 | yyyy-MM-dd'T'HH:mm:ss.SSSXXX | 解析Artifactory API响应中日期的格式 |
| ARTIFACTORY_BADGE_SHIELDS_IO_ENABLED | 否 | true | 指示是否使用shields.io生成徽章 |
| ARTIFACTORY_BADGE_PARALLELISM | 否 | 5 | 获取镜像版本详情时的并行度 |
| LOGGER_LEVELS_ROOT | 否 | INFO | SLF4J日志级别(适用于所有框架及自定义代码) |
| LOGGER_LEVELS_IO_GITHUB_DEVATHEROCK | 否 | INFO | SLF4J日志级别(仅适用于自定义代码) |
| MICRONAUT_ENVIRONMENTS | 否 | (无) | 设置为local时模拟Artifactory调用,仅用于测试 |
| MICRONAUT_SERVER_PORT | 否 | 8080 | 应用监听端口 |
| MICRONAUT_CONFIG_FILES | 是 | (无) | YAML配置文件路径,用于指定复杂对象或数组属性 |
| LOGBACK_CONFIGURATION_FILE | 否 | (无) | logback配置文件的类路径、文件路径或远程路径(当使用远程路径且设置logger.*或LOGGER_配置时将被忽略) |
应用运行时,可通过{host}/swagger-ui或{host}/swagger/artifactory-badge-{version}.yml访问完整API文档。主要端点如下:
/docker/pulls?package=path/to/package - 生成下载量徽章/docker/image-size?package=path/to/package - 生成镜像大小徽章/docker/layers?package=path/to/package - 生成镜像层数徽章/version?package=path/to/package - 生成最新版本徽章xml<svg xmlns="[***]" xmlns:xlink="[***]" width="144" height="20" role="img" aria-label="docker pulls: 47"> <title>docker pulls: 47</title> <linearGradient id="s" x2="0" y2="100%"> <stop offset="0" stop-color="#bbb" stop-opacity=".1"/> <stop offset="1" stop-opacity=".1"/> </linearGradient> <clipPath id="r"> <rect width="144" height="20" rx="3" fill="#fff"/> </clipPath> <g clip-path="url(#r)"> <rect width="112" height="20" fill="#555"/> <rect x="112" width="32" height="20" fill="#007ec6"/> <rect width="144" height="20" fill="url(#s)"/> </g> <g font-family="monospace"> <text aria-hidden="true" x="0" y="15" fill="#fff" xml:space="preserve"> docker pulls </text> <text aria-hidden="true" x="112" y="15" fill="#fff" xml:space="preserve"> 47 </text> </g> </svg>
LOGGER_LEVELS_ROOT=DEBUG:启用所有调试日志(框架及自定义代码)LOGGER_LEVELS_IO_GITHUB_DEVATHEROCK=DEBUG:仅启用自定义代码调试日志LOGBACK_CONFIGURATION_FILE=/path/to/custom/logback.xml参考logstash-logback-encoder文档自定义日志字段和格式。设置LOGBACK_CONFIGURATION_FILE=logback-json.xml即可输出JSON格式日志。



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