Установите для secomp значение undefined в docker-compose
Мне нужно уметь форк процесс. Как я понимаю, мне нужно установить опцию безопасности. Я попытался сделать это с помощью команды Docker, и она работает нормально. Однако, когда я делаю это в файле docker-compose, он, кажется, ничего не делает, возможно, я не использую права compose.
докер
docker run --security-opt=seccomp:unconfined <id> dlv debug --listen=:2345 --headless --log ./cmd/main.go
Docker-Compose
Настроить
докер-compose.yml
networks:
backend:
services:
example:
build: .
security_opt:
- seccomp:unconfined
networks:
- backend
ports:
- "5002:5002"
Dockerfile
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: Использование API v1 2017/09/04 15:58:33 debugger.go:97: запуск процесса с аргументами: [/go/src/debug] не удалось процесс запуска: fork/exec /go/src/debug: операция не разрешена
1 ответ
Синтаксис составления правильный. Но security_opt будет применен к новому экземпляру контейнера и, следовательно, недоступен во время сборки, как вы пытаетесь сделать с Dockerfile. RUN
команда.
Правильный путь должен быть:
Dockerfile:
FROM golang:1.8
RUN go get -u github.com/derekparker/delve/cmd/dlv
докер-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']