我从distroless/java:8转换为distroless/java:8调试容器,当部署到kubernetes时,我开始得到以下错误:错误:无法访问jarfile /MyApp-0.1.jar
这是我的Dockerfile:
FROM gcr.io/distroless/java:8-debug
LABEL CONTAINER_NAME=my-api
ARG JAR_FILE=MyApp/core/build/libs/core-0.1-boot.jar
COPY ${JAR_FILE} MyApp-0.1.jar
ENTRYPOINT ["java","-jar","/MyApp-0.1.jar"]当我使用常规的无震区(其他一切都一样)时,我没有这个问题。有趣的是,当我尝试在本地运行这个Dockerfile时,我不会得到这个错误。这是什么许可问题吗?
发布于 2021-05-05 15:44:01
我重新部署了,现在起作用了。唯一合乎逻辑的解释是,我尝试首先使用非根的,当我切换到根的时候,一些非根的豆荚仍然存在,造成了这个问题。
发布于 2021-05-05 15:41:25
根据我从这个构建脚本中收集到的内容:https://github.com/GoogleContainerTools/distroless/blob/main/java/BUILD
这两个容器是相同的。只有调试一个包含java编译器。
此外,您也可以尝试从容器本身运行应用程序。运行类似于此的代码:
码头运行-it --entrypoint sh my-api
在容器内运行whoami验证用户是否为root用户,因此不存在任何限制。
https://stackoverflow.com/questions/67403811
复制相似问题