【发布时间】:2019-08-23 16:39:15
【问题描述】:
我正在尝试使用 Go 设置 Stackdriver debugging。使用这篇文章和这个很棒的medium post 我想出了这个solution。
关键部分,在cloudbuild.yaml
- name: gcr.io/cloud-builders/wget
args: [
"-O",
"go-cloud-debug",
"https://storage.googleapis.com/cloud-debugger/compute-go/go-cloud-debug"
]
...
Dockerfile 我有
...
COPY gopath/bin/stackdriver-demo /stackdriver-demo
ADD go-cloud-debug /
ADD source-context.json /
CMD ["/go-cloud-debug","-sourcecontext=./source-context.json", "-appmodule=go-errrep","-appversion=1.0","--","/stackdriver-demo"]
...
尽管 pod 不断崩溃,但容器日志显示此错误:
Error loading program: decoding dwarf section info at offset 0x0: too short
编辑:使用 https://storage.googleapis.com/cloud-debugger/compute-go/go-cloud-debug 可能已经过时,因为我没有看到它在 Daz 的中型帖子之外使用过。官方docs使用包cloud.google.com/go/cmd/go-cloud-debug-agent
我已经更新 cloudbuild.yaml 文件来安装这个包:
- name: 'gcr.io/cloud-builders/go'
args: ["get", "-u", "cloud.google.com/go/cmd/go-cloud-debug-agent"]
env: ['PROJECT_ROOT=github.com/roberson34/stackdriver-demo', 'CGO_ENABLED=0', 'GOOS=linux']
- name: 'gcr.io/cloud-builders/go'
args: ["install", "cloud.google.com/go/cmd/go-cloud-debug-agent"]
env: ['PROJECT_ROOT=github.com/roberson34/stackdriver-demo', 'CGO_ENABLED=0', 'GOOS=linux']
在Dockerfile 中,我可以访问gopath/bin/go-cloud-debug-agent 中的二进制文件
当我使用自己的程序作为参数执行gopath/bin/go-cloud-debug-agent 时:
/go-cloud-debug-agent -sourcecontext=./source-context.json -appmodule=go-errrep -appversion=1.0 -- /stackdriver-demo
我得到另一个不透明的错误:
Error loading program: AttrStmtList not present or not int64 for unit 88
所以基本上使用https://storage.googleapis.com/cloud-debugger/compute-go/go-cloud-debug 中的cloud-debug 二进制文件和cloud.google.com/go/cmd/go-cloud-debug-agent 包中的cloud-debug-agent 二进制文件都不起作用并给出不同的错误。
对于我做错了什么以及如何解决它的任何提示,我们将不胜感激。
【问题讨论】:
-
啊奉承 ;-) 感谢 cmets 的好意。让我看看这个,看看我是否还能让它工作。
标签: kubernetes google-kubernetes-engine stackdriver google-cloud-stackdriver