在 Docker 中安装 GCP 探查器代理时出现问题



我正在尝试为在 GKE 中运行的应用程序安装 GCP 性能分析器代理,请按照此处的说明进行操作:https://cloud.google.com/profiler/docs/profiling-java

我无法克服此错误。有人可以帮忙吗?

找不到代理库/opt/cprof/profiler_java_agent.so 绝对路径,但有错误:重新定位时出错/opt/cprof/profiler_java_agent.so: __pthread_key_create: initial-exec TLS 解析为动态定义/opt/cprof/profiler_java_agent.so

这是 Dockerfile

FROM openjdk:8-jdk-alpine
RUN apk update && apk add --no-cache gcompat
RUN apk update && apk add --no-cache libc6-compat
WORKDIR /app
# The application's jar file
ARG JAR_FILE=target/example-svc-*.jar
# Add the application's jar to the container
ADD ${JAR_FILE} example-svc.jar
EXPOSE 5050
RUN mkdir -p /opt/cprof && 
wget -q -O- https://storage.googleapis.com/cloud-profiler/java/latest/profiler_java_agent.tar.gz 
| tar xzv -C /opt/cprof
ENTRYPOINT ["java", 
"-agentpath:/opt/cprof/profiler_java_agent.so=-cprof_service=example-svc,-cprof_service_version=0.0.1-SNAPSHOT", 
"-jar", "/app/example-svc.jar"]

问题似乎是您正在使用的容器映像的基本版本。 查看您的 Dockerfile,您从:

openjdk:8-jdk-alpine

深入研究这方面的文档,我们发现:

需要注意的主要警告是,它确实使用了musl libc而不是glibc。 和朋友,因此某些软件可能会遇到问题,具体取决于 其 libc 要求的深度。

(参考资料:openjdk(

现在,如果我们查看此处找到的Google文档,我们会发现定义了以下要求:

支持的操作系统:

  • Linux 版本,其标准 C 库是用 glibc 实现的。

。这似乎是一个冲突。 请尝试使用不基于alpine的 openjdk 映像的备用版本。

相关内容

  • 没有找到相关文章

最新更新