我正试图通过堆栈驱动程序在GKE集群上调试一个java应用程序。我已经用Allow full access to all Cloud APIs
创建了一个GKE集群以下是我的文件: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:invalidmagic,tar:short-read失败。
在stackdriver调试控制台中,它总是显示"未找到已部署的应用程序"。它将显示哪个应用程序?我已经在我的kubernetes集群上部署了2个服务。
我已经执行了gcloud debug source gen-repo-info-file --output-directory="WEB-INF/classes/
在我的项目目录中。
它生成了source-context.json。创建后,我尝试构建docker镜像,但失败了。
部署容器化应用程序时,调试器将准备就绪。由于调试器代理无法在dockerfile中下载或解压缩,您将收到No deployed application found
错误。
请检查此讨论以解决tar: invalid magic , tar: short read.
错误。
不幸的是,Alpine似乎没有定期使用Debugger进行测试。这里有一个示例设置可能会对您有所帮助:https://github.com/GoogleCloudPlatform/cloud-debug-java#alpine-linux
我解决了这个问题。
首先,您必须使用java映像"gcr.io/google-appengine/openjdk",而不是Alpine映像。
第二,我把入口点没有逗号分隔(基本上是错误的格式(
ENTRYPOINT ["java","-agentpath:/opt/cdbg/cdbg_java_agent.so", "-Djava.security.egd=file:/dev/./urandom" ,"-Dcom.google.cdbg.module=watchlist"]