fork / exec ./debug:不允许操作

时间:2016-03-06 14:04:47

标签: go docker delve

我的目标是能够从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

4 个答案:

答案 0 :(得分:2)

如果您使用--privileged启动容器似乎有效。我试图弄清楚是否有更细粒度的功能但是失败了。

此外,我发现https://github.com/steeve/homebrew-delve可以使OSX更容易。

答案 1 :(得分:2)

根据Delve Issue #515

  

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

对我有用〜