我正在尝试通过栈驱动在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: invalid magic,tar: short read。
在stackdriver调试控制台中,它总是显示“找不到已部署的应用程序”。它将显示哪个应用程序?我已经在kubernetes集群上部署了2个服务。
我已经在我的项目目录中执行了gcloud debug source gen-repo-info-file --output-directory="WEB-INF/classes/。
它生成了source-context.json。在它创建之后,我尝试构建docker镜像,但它失败了。
发布于 2019-12-02 15:01:16
我解决了这个问题。
首先,你必须使用java镜像"gcr.io/google-appengine/openjdk“而不是高山镜像。
其次,我把入口点放在没有逗号分隔的地方(基本上格式错误)。
ENTRYPOINT ["java","-agentpath:/opt/cdbg/cdbg_java_agent.so", "-Djava.security.egd=file:/dev/./urandom" ,"-Dcom.google.cdbg.module=watchlist"]发布于 2019-11-11 14:22:48
当您部署您的容器化应用程序时,调试器将准备就绪。由于调试器代理无法在dockerfile中下载或解压缩,因此出现No deployed application found错误。
请检查this discussion以解决tar: invalid magic , tar: short read.错误。
发布于 2019-11-20 23:11:33
不幸的是,看起来高山似乎没有定期使用调试器进行测试。这里有一个可能对您有帮助的示例设置:https://github.com/GoogleCloudPlatform/cloud-debug-java#alpine-linux
https://stackoverflow.com/questions/58765251
复制相似问题