Docker 无法找到用户:OpenJdk11 的密码文件中没有匹配的条目

Docker Unable to find user: no matching entries in passwd file for OpenJdk11

我正在尝试使用非 root 用户构建和 运行 图像并不断收到错误消息:“无法找到用户测试:密码文件中没有匹配的条目。”

这是我的 Docker 文件的样子:

FROM openjdk:11-jre-slim

RUN addgroup --system test
RUN adduser --system testuser --ingroup test

USER test:testuser

COPY build/libs/abc-0.0.1.jar app.jar

ENTRYPOINT ["java","-jar", "app.jar"]

我已经尝试搜索错误并查看了其他地方,但 none 似乎对我有用。有人可以帮我吗?我知道我可以 运行 与 root 用户一起使用,但我不想这样做,或者如果有另一个 Openjdk11 图像我可以用来让它工作,那也没关系。

问题出在行 USER test:testuser

您正在创建一个名为 test 的用户组和一个名为 testuser 的用户,但是在 Dockerfile 的 USER 语句中您指定了 test:testuser,这是不正确的命令。它必须像 USER testuser:test

USER user:group

or

USER UID:GID

参见 Dockerfile 参考 here