Установите для 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']
Другие вопросы по тегам