【问题标题】:Unable to access jarfile docker using distroless-debug无法使用 distroless-debug 访问 jarfile docker
【发布时间】:2021-07-27 22:10:44
【问题描述】:

我从 distroless/java:8 切换到 distroless/java:8-debug 容器,当部署到 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"]

当我使用常规的 distroless(其他一切都一样)时,我没有遇到这个问题。 有趣的是,当我尝试在本地运行这个 Dockerfile 时,我没有收到这个错误。这是一些权限问题吗?

【问题讨论】:

    标签: java docker kubernetes deployment jar


    【解决方案1】:

    根据我从这个构建脚本中收集到的信息: https://github.com/GoogleContainerTools/distroless/blob/main/java/BUILD

    这两个容器是相同的。只有 debug 包含 java 编译器

    另外,您可以尝试从容器本身运行应用程序。运行类似这样的东西:

    docker run -it --entrypoint sh my-api

    在容器内运行 whoami 会验证用户是 root,所以不应该存在任何限制

    【讨论】:

      【解决方案2】:

      我已重新部署,它现在正在工作。唯一合乎逻辑的解释是,我尝试先使用非 root 用户,当我切换到 root 用户时,一些非 root 用户的 pod 仍然存在导致问题。

      【讨论】:

        猜你喜欢
        • 2018-12-17
        • 2018-11-07
        • 2019-11-17
        • 2019-06-03
        • 2016-10-24
        • 1970-01-01
        • 2017-01-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多