在 kubernetes/ docker 中使用 dnsjava 解析域的 mx 记录

Resolve mx records for a domain using dnsjava in kubernetes/ docker

我正在尝试解析 kubernetes pod 中的 mx 记录。 dnsjava 库在容器外的 mac 和 ubuntu 上进行测试时有效,但 returns 部署后为空数组。

需要在 k8s 或 docker 图像中提供什么才能使其工作?

https://github.com/dnsjava/dnsjava

编辑 1

  Record[] records;
  try {
    records = new Lookup(mailDomain, Type.MX).run();
  } catch (TextParseException e) {
    throw new IllegalStateException(e);
  }
  if (records != null && records.length > 0) {
    for (final Record record : records) {
      MXRecord mx = (MXRecord) record;
      //do something with mx...
    }
  } else {
    log.warn("Failed to determine MX record for {}", mailDomain);
  }

log.warn一直在K8s中执行。 docker 图像是 openjdk:11-jdk-slim 即它是 Debian。我刚刚在 Docker 之外的 Debian 上进行了测试,它也运行良好。

最后我无法让 dnsjava 在 docker/k8s 中工作。 我直接用了JNDI,关注 完全按照该答案中给出的那样工作,没有任何问题。