我的目标是能够从Atom.io进行远程调试。进入一个运行的docker容器进入dlv debugger。这是第一个问题:
更新:1。我在mac上运行Docker容器,但这不应该影响代码签名的事情,因为我在容器中运行,对吗?
更新:2。 Codeignig主持人,没有帮助。
Error:
1. root@...:/go/src/app# go get github.com/derekparker/delve/cmd/dlv
2. root@...:/go/src/app# dlv debug hello.go
could not launch process: fork/exec ./debug: operation not permitted
然后尝试
1. root@...:/go/src/app# sudo
2. bash: sudo: command not found
答案 0 :(得分:2)
如果您使用--privileged
启动容器似乎有效。我试图弄清楚是否有更细粒度的功能但是失败了。
此外,我发现https://github.com/steeve/homebrew-delve可以使OSX更容易。
答案 1 :(得分:2)
Docker具有防止ptrace(2)操作的安全设置 默认情况下在容器中。通过--security-opt seccomp:unconfined 在开始时运行码头。
*在官方docker bug tracker https://github.com/docker/docker/issues/21051
中对此进行确认答案 2 :(得分:0)
Docker具有阻止ptrace(2)
的安全设置看看我如何解决它。
如果使用docker-compose文件运行容器,请在服务部分中添加seccomp:unconfined
,如下所示
api:
security_opt:
- seccomp:unconfined
如果使用docker run ...传递seccomp:unconfined
也适用
答案 3 :(得分:0)
作为命令运行Docker容器:
docker run -itd -p 2028:22 -p 2345:2345 --dns=10.236.8.8 --privileged=true --name=golang centos7-golang /usr/bin/supervisord
对我有用〜