PAYATHON 2026

如何使用 Mend Renovate 管理 ORDS 和 Oracle APEX 版本?

数据小许

可以用 Renovate 的 regex custom manager 更新这两个 ARG,但需要先提供与 Oracle 下载包对应的版本来源。还要核对原配置中 github-releases 指向的仓库:正则匹配成功,不代表能发现正确的更新。

以下配置基于官方机制,需要接入自己的版本清单并验证下载地址。现有材料不足以确认一份已用于实际生产环境的 ORDS/APEX 配置。

为什么原配置可能找不到更新?

github-releases 查询的是指定 GitHub 仓库的 Releases,不会根据后面的 wget 地址自动到 Oracle 下载站查找版本。因此,需要确认 oracle/oracle-db-examples 和 oracle/apex 的 Releases 是否确实提供所需产品的版本。Renovate GitHub Releases 文档

oracle/apex 的 README 将仓库内容描述为示例应用、示例代码和插件,并按 APEX 版本提供分支。分支名称不能直接作为该仓库发布完整 APEX 安装包的依据。Oracle APEX 仓库说明

还需要核对下载包使用的版本字符串。APEX 23.2 官方安装指南列出的文件名是 apex_23.2.zip 和 apex_23.2_en.zip,而原代码会拼出 apex_23.2.0.zip。产品版本与制品文件名不能直接画等号。APEX 23.2 安装指南

如何配置可控的版本来源?

如果没有合适的现成数据源,可以用 customDatasources 读取自行维护的 JSON 清单。清单应根据 Oracle 官方发布信息和实际制品整理,也可以由独立任务定期生成。

假设你在自己的 HTTPS 服务上提供两个文件:

  • https://versions.example.com/oracle/ords.json
  • https://versions.example.com/oracle/apex.json

以上地址都是占位地址,必须替换。清单的最小结构如下:

{
  "releases": [
    { "version": "23.2" }
  ]
}

这是 APEX 清单的结构示例。ORDS 清单采用相同结构,但应填写已核对过的 ORDS 完整制品版本。需要持续加入新的真实版本,Renovate 才有更新可供选择。自定义数据源文档

Dockerfile 和 Renovate 配置怎么写?

先将依赖指向自定义数据源:

# renovate: datasource=custom.oracle depName=ords
ARG ORDS_VERSION=24.1.0

# renovate: datasource=custom.oracle depName=apex
ARG APEX_VERSION=23.2

这里保留原问题中的 ORDS 值,仅用于展示提取方式。它是否能直接用于下载包地址,仍需另行核对。APEX 示例使用安装指南中的基础安装包版本字符串。

对应的 renovate.json:

{
  "customManagers": [
    {
      "customType": "regex",
      "managerFilePatterns": ["/(^|/)Dockerfile$/"],
      "matchStrings": [
        "#\\s*renovate:\\s*datasource=(?<datasource>\\S+)[ \\t]+depName=(?<depName>\\S+)[ \\t]*\\r?\\n[ \\t]*ARG[ \\t]+(?:ORDS|APEX)_VERSION=(?<currentValue>[^\\s#]+)"
      ],
      "versioningTemplate": "loose"
    }
  ],
  "customDatasources": {
    "oracle": {
      "defaultRegistryUrlTemplate": "https://versions.example.com/oracle/{{{packageName}}}.json",
      "format": "json"
    }
  }
}

该正则要求注释紧邻 ARG,且版本值不带引号。它直接捕获 datasource、depName 和 currentValue,因此无需另填对应的两个模板字段。如果配置了 enabledManagers,还需将 custom.regex 加入允许列表。regex manager 文档

loose 用于处理可能不符合标准 SemVer 的制品版本。接入真实版本清单后,仍应检查排序是否符合预期。

当前文档使用 managerFilePatterns,原来的 fileMatch 是旧名称。现行 Renovate 支持迁移已有配置,因此不能仅凭这个字段认定原配置失败。配置字段说明

如何确认更新链路正常?

依次检查以下环节:

  1. 在 Renovate 日志中确认 Dockerfile 被扫描,并提取出 ords、apex 及其当前版本。
  2. 确认 Renovate 运行环境能访问版本清单,且返回内容符合 releases[].version 结构。
  3. 在清单中加入一个经过核验且高于当前值的版本,观察 Renovate 是否提出更新。
  4. 对更新后的 Dockerfile 执行构建,检查下载地址、ZIP 内容和安装流程。

Renovate 能发现新版本,并不保证通过字符串拼接得到的下载地址有效。ORDS 应以官方实际下载链接为准;APEX 的基础安装包与补丁包也应分别处理。合并版本更新前,还需确认目标 ORDS、APEX、数据库及 Java 的兼容要求。ORDS 官方下载页面

备注:内容仅供参考。