fork/exec ./debug: operation not permitted

9
我的目标是能够从Atom.io远程调试运行在dlv debugger中的go docker容器。这是第一个问题:
更新:1.我正在Mac上运行Docker容器,但这不应该影响代码签名,因为我是在容器中运行的,对吧?
更新:2.对主机进行代码签名没有帮助。
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

你正在运行哪个容器? - jupp0r
https://hub.docker.com/_/golang/ - Chris G.
4个回答

5

4
如果使用--privileged启动容器,似乎可以正常工作。我尝试找到更细粒度的能力,但失败了。
此外,我刚刚发现https://github.com/steeve/homebrew-delve,这应该会在OSX上使事情变得更加容易。

3

Docker有安全设置,防止使用ptrace(2)。

看看我如何解决它。

如果使用docker-compose文件运行容器,则在服务部分添加seccomp:unconfined,如下所示。

api: 
  security_opt:
    - seccomp:unconfined

如果使用docker run命令,传递seccomp:unconfined也可以工作。


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

这对我来说很有效~


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接