在 docker-compose 中将 secomp 设置为 unconfined
Set secomp to unconfined in docker-compose
我需要能够分叉一个进程。据我了解,我需要设置安全选项。我已经尝试使用 docker 命令执行此操作并且它工作正常。但是,当我在 docker-compose 文件中执行此操作时,它似乎什么也没做,也许我没有正确使用 compose。
Docker
docker run --security-opt=seccomp:unconfined <id> dlv debug --listen=:2345 --headless --log ./cmd/main.go
Docker-撰写
设置
docker-compose.yml
networks:
backend:
services:
example:
build: .
security_opt:
- seccomp:unconfined
networks:
- backend
ports:
- "5002:5002"
Docker文件
FROM golang:1.8
RUN go get -u github.com/derekparker/delve/cmd/dlv
RUN dlv debug --listen=:2345 --headless --log ./cmd/main.go
命令
docker-compose -f docker-compose.yml up --build --abort-on-container-exit
结果
2017/09/04 15:58:33 server.go:73: Using API v1 2017/09/04 15:58:33
debugger.go:97: launching process with args: [/go/src/debug] could not
launch process: fork/exec /go/src/debug: operation not permitted
撰写语法正确。但是 security_opt 将应用于容器的新实例,因此在构建时不可用,就像您尝试使用 Dockerfile RUN
命令一样。
正确的方法应该是:
Dockerfile:
FROM golang:1.8
RUN go get -u github.com/derekparker/delve/cmd/dlv
docker-compose.yml
networks:
backend:
services:
example:
build: .
security_opt:
- seccomp:unconfined
networks:
- backend
ports:
- "5002:5002"
entrypoint: ['/usr/local/bin/dlv', '--listen=: 2345', '--headless=true', '--api-version=2', 'exec', 'cmd/main.go']
我需要能够分叉一个进程。据我了解,我需要设置安全选项。我已经尝试使用 docker 命令执行此操作并且它工作正常。但是,当我在 docker-compose 文件中执行此操作时,它似乎什么也没做,也许我没有正确使用 compose。
Docker
docker run --security-opt=seccomp:unconfined <id> dlv debug --listen=:2345 --headless --log ./cmd/main.go
Docker-撰写
设置
docker-compose.yml
networks:
backend:
services:
example:
build: .
security_opt:
- seccomp:unconfined
networks:
- backend
ports:
- "5002:5002"
Docker文件
FROM golang:1.8
RUN go get -u github.com/derekparker/delve/cmd/dlv
RUN dlv debug --listen=:2345 --headless --log ./cmd/main.go
命令
docker-compose -f docker-compose.yml up --build --abort-on-container-exit
结果
2017/09/04 15:58:33 server.go:73: Using API v1 2017/09/04 15:58:33 debugger.go:97: launching process with args: [/go/src/debug] could not launch process: fork/exec /go/src/debug: operation not permitted
撰写语法正确。但是 security_opt 将应用于容器的新实例,因此在构建时不可用,就像您尝试使用 Dockerfile RUN
命令一样。
正确的方法应该是:
Dockerfile:
FROM golang:1.8
RUN go get -u github.com/derekparker/delve/cmd/dlv
docker-compose.yml
networks:
backend:
services:
example:
build: .
security_opt:
- seccomp:unconfined
networks:
- backend
ports:
- "5002:5002"
entrypoint: ['/usr/local/bin/dlv', '--listen=: 2345', '--headless=true', '--api-version=2', 'exec', 'cmd/main.go']