我正在尝试通过堆栈驱动程序在 GKE 集群上调试 Java 应用程序。
我创建了一个 GKE 集群,其中允许完全访问所有 Cloud API
我正在关注文档:https://cloud.google.com/debugger/docs/setup/java
这是我的 DockerFile:
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} alnt-watchlist-microservice.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/alnt-watchlist-microservice.jar"]
在文档中,它被编写为在 DockeFile 中添加以下行:
RUN mkdir /opt/cdbg && \
wget -qO- https://storage.googleapis.com/cloud-debugger/compute-java/debian-wheezy/cdbg_java_agent_gce.tar.gz | \
tar xvz -C /opt/cdbg
RUN java -agentpath:/opt/cdbg/cdbg_java_agent.so
-Dcom.google.cdbg.module=tpm-watchlist
-Dcom.google.cdbg.version=v1
-jar /alnt-watchlist-microservice.jar
当我构建 DockerFile 时,它失败说 tar: invalid magic , tar: Short read。
在 stackdriver 调试控制台中,它始终显示“未找到已部署的应用程序”。它将显示哪个应用程序?我已经在我的 kubernetes 集群上部署了 2 个服务。
我已经执行了
gcloud 调试源 gen-repo-info-file --output-directory="WEB-INF/classes/
在我的项目目录中。
它生成了source-context.json。创建后,我尝试构建 docker 镜像,但失败了。
最佳答案
当您部署容器化应用程序时,调试器将可供使用。您收到未找到已部署的应用程序
错误,因为您的调试器代理无法在 dockerfile 中下载或解压缩。
请查看this discussion解决 tar: invalid magic 、 tar: Short read.
错误。
关于kubernetes - 无法通过 google kubernetes 集群中的堆栈驱动程序调试 java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58765251/