为什么 UnixSystem().getUsername() 返回 null(Docker 中的 OpenJDK 17)

2024-01-02

以下代码适用于 OSX

var hadoopInputFile  = org.apache.parquet.hadoop.util.HadoopInputFile.fromPath(parquetPath, new Configuration())

但在 Linux 上却没有:

failure to login: javax.security.auth.login.LoginException: java.lang.NullPointerException: invalid null input: name
    at jdk.security.auth/com.sun.security.auth.UnixPrincipal.<init>(UnixPrincipal.java:67)
    at jdk.security.auth/com.sun.security.auth.module.UnixLoginModule.login(UnixLoginModule.java:134)
    at java.base/javax.security.auth.login.LoginContext.invoke(LoginContext.java:726)
    at java.base/javax.security.auth.login.LoginContext$4.run(LoginContext.java:665)
    at java.base/javax.security.auth.login.LoginContext$4.run(LoginContext.java:663)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:691)
    at java.base/javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:663)
    at java.base/javax.security.auth.login.LoginContext.login(LoginContext.java:574)
    at org.apache.hadoop.security.UserGroupInformation$HadoopLoginContext.login(UserGroupInformation.java:2065)
    at org.apache.hadoop.security.UserGroupInformation.doSubjectLogin(UserGroupInformation.java:1975)
    at org.apache.hadoop.security.UserGroupInformation.createLoginUser(UserGroupInformation.java:719)
    at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:669)
    at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:579)
    at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:3746)
    at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:3736)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:3520)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:540)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:288)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:524)
    at org.apache.hadoop.fs.Path.getFileSystem(Path.java:365)
    at org.apache.parquet.hadoop.util.HadoopInputFile.fromPath(HadoopInputFile.java:38)
...

我找到new com.sun.security.auth.module.UnixSystem().getUsername()回报null但不应该

有什么想法如何修复或解决它吗?

UPD
由于这是发生在 docker 容器内
Dockerfile:

FROM maven:3.8.5-openjdk-17 AS tests
ENV WORKDIR="/application"
WORKDIR ${WORKDIR}
COPY . $WORKDIR/

运行命令:

      docker run
        --user 0:1001
        --volume $(command -v docker):/usr/bin/docker
        --volume /var/run/docker.sock:/var/run/docker.sock
        --volume $(pwd):/path/to/project/application
        app_tag bash -c
        "umask 002;
        mvn --settings ./.m2-settings.xml package"

UPD 2
我找到了萨德id gives uid=1001 gid=1001 groups=1001
and whoami - whoami: cannot find name for user ID 1001

现在的解决方法是添加到 Dockerfile

RUN groupadd -g 1001 sysadmin
RUN useradd appadmin -u 1001 -g 1001 -m -s /bin/bash

添加到 Dockerfile 解决了问题

RUN groupadd -g 1001 sysadmin
RUN useradd appadmin -u 1001 -g 1001 -m -s /bin/bash
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 UnixSystem().getUsername() 返回 null(Docker 中的 OpenJDK 17) 的相关文章

随机推荐

  • statsmodels ARIMA 结果与原始数据的比较

    我有一个包含季节性成分的时间序列 我安装了 statsmodels ARIMA model tsa arima model ARIMA data 8 1 0 fit 例如 现在 我了解到 ARIMA 与我的数据存在差异 我如何比较结果 pr
  • 从 git 命令获取 JSON,例如 git status

    如果我运行这个命令 git status I get On branch master Your branch is up to date with origin master nothing to commit working direc
  • WPF绑定以更改椭圆的填充颜色

    如何以编程方式更改 XAML 中基于变量定义的椭圆的颜色 我读到的关于绑定的所有内容都是基于集合和列表 我不能根据字符串变量的值简单地 字面意思 设置它吗 字符串颜色 红色 颜色 FF0000 值得指出的是 其他帖子引用的转换器已经存在 这
  • 如何调试类型级程序

    我正在尝试进行一些类型级别的编程 但它不起作用 我正在绞尽脑汁地试图弄清楚为什么 GHC 完全无法推断出我想要的类型签名 有什么方法可以制作GHC吗tell me它在做什么 I tried ddump tc 它只打印出最终的类型签名 是的
  • MySQL GROUP BY 和填充空行

    我确信之前已经回答过这个问题 但我找不到我需要的详细信息 对于分析系统 我需要能够对行进行分组并将它们返回到图表上 或者按minute 小时 日 月或年 我的工作正常 下面的示例代码 SELECT COUNT DISTINCT user i
  • .htaccess 首先检查 cookie,然后检查有效用户

    我的 apache 服务器上的目录有一个 htaccess 文件 目前 这使用 mod auth mysql 进行用户验证以查看目录列表 但是 如果用户已经登录到我的应用程序 因此存在 cookie 我想跳过有效用户要求 从而消除多次登录
  • ASP.NET MVC 4 RC Web API 参数绑定问题

    我在 ASP NET MVC 4 RC Web API 中遇到了一个奇怪的绑定问题 我有一种方法旨在接受客户端的发布请求 问题是 当调用 post 方法时 没有任何参数绑定 我到达了抛出行上的断点 并且名称 电子邮件均为空 如果我在 Jav
  • 使用 jQuery + ERB 在视图中获取 6:Fixnum (Rails) 的未定义方法“gsub”?

    我正在尝试将一些 jQuery ERB 添加到特定视图 views posts show html erb 文件顶部 h2 posts show h2 etc div class div
  • std::make_shared 是否执行值初始化(GCC 和 clang 不同意)?

    我的意思可以用下面的例子来解释 auto p std make shared
  • 如何在 iPad 中解析 XML 文件时处理 CDATA 标签

    我正在开发一个应用程序 需要解析一些包含 CDATA 标签的 XML 文件 解析普通 xml 非常简单 但我在检索 CDATA 标记内的数据时遇到问题 The parser foundCDATA 为遇到的每个 CDATA 标记调用方法 其中
  • Sidekiq Perform_later 无法与操作电缆一起使用

    我在我的应用程序中设置了基本的有线聊天功能 我有一个 after create commit 回调 它将消息发送到要广播到适当通道的作业 当设置为perform now时它可以正常工作 但当设置为perform later时则不起作用 Si
  • 将两个变量相除得到 NaN

    我正在学习 JavaScript 我当前的代码似乎适用于总价值 但我无法让我的部门代码发挥作用来显示每人的成本是多少 这似乎是问题所在 document getElementById costeach innerHTML Price eac
  • Android 浅色/深色主题操作栏文本

    我正在我的 Playground Android 应用程序中实现深色主题 并且正在努力将操作栏文本颜色设置为白色 下面是我的风格和颜色 操作栏的背景遵循 colorPrimary 这很棒 然而 两种颜色 浅色和深色 都是非常深色的颜色 并且
  • Android,从不同的活动在缓存中保存和加载位图

    我有一个需要在新活动中显示的位图 因此我对其进行缓存 并在打开的活动中尝试加载它 但出现 nullPointerException 我在这里保存图像 File cacheDir getBaseContext getCacheDir File
  • 如何压缩谷歌驱动器中的文件?

    有什么方法可以将大文件压缩成谷歌驱动器中较小的 zip 或 tar gz 文件吗 我试过谷歌应用脚本 https stackoverflow com questions 13259041 creating a zip file inside
  • 为什么 Chrome 不允许 Web Workers 在 JavaScript 中运行?

    如果我尝试通过 JavaScript 文件使用 Web Worker Chrome 会抛出错误 未捕获的安全错误 无法创建工作程序 无法从源 null 访问 path worker js 处的脚本 但如果我们直接通过 HTML 使用 它就允
  • JSF 2.0 和多重提交问题

    有人告诉我JSF 2 0自动处理多重提交问题 是对的吗 如果是 JSF 2 0 是如何做到这一点的 如果不是 在处理这个问题时必须注意哪些事项 以免留下任何陷阱 Thanks 这是由以下人员请求和维护的JSF 规范问题 559 http j
  • Magento 获取购物车单件商品价格(含税)税

    我有一个很奇怪的问题 我希望有人能帮助我解决这个问题 以下是影响我的问题的主要配置设置 管理面板中显示的目录价格包含税费 前端显示的目录价格包含税费 购物车中的商品显示不含税 因此它单独显示在小计附近 到目前为止一切都运行良好 问题出在自定
  • ESlint 抛出错误而不是警告

    是否可以使用 Eslint 抛出错误而不是警告 我正在与一个create react app并希望在我的团队中有一个非常严格的 lint 政策 并认为这可能是一个好的开始 那可能吗 max warnings可以达到这个目的 max warn
  • 为什么 UnixSystem().getUsername() 返回 null(Docker 中的 OpenJDK 17)

    以下代码适用于 OSX var hadoopInputFile org apache parquet hadoop util HadoopInputFile fromPath parquetPath new Configuration 但在