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

zha*_*der 10 java docker openjdk-11

我尝试使用非 root 用户构建并运行该映像,但不断收到错误:“无法找到用户测试:passwd 文件中没有匹配的条目。”

我的 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"]
Run Code Online (Sandbox Code Playgroud)

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

the*_*ing 5

问题出在线路上USER test:testuser

您正在创建一个名为 的用户组test和一个名为 的用户,testuser但在USER您指定的 Dockerfile 语句中test:testuser,这不是正确的顺序。一定是这样的USER testuser:test

USER 用户:组

或者

用户UID:GID

请参阅此处的Dockerfile 参考。