Установите secomp на неограниченный в docker-compose

Мне нужно иметь возможность разветвить процесс. Насколько я понимаю, мне нужно установить параметр security-opt. Я попытался сделать это с помощью команды docker, и она отлично работает. Однако, когда я делаю это в файле компоновки докеров, кажется, что ничего не происходит, возможно, я неправильно использую композицию.

Докер

docker run --security-opt=seccomp:unconfined <id> dlv debug --listen=:2345 --headless --log ./cmd/main.go

Docker-компоновать

Настраивать

докер-compose.yml

networks:
  backend:

services:
  example:
    build: .
    security_opt:
      - seccomp:unconfined
    networks:
      - backend
    ports:
      - "5002:5002"

Докерфайл

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

Результат

04.09.2017 15:58:33 server.go:73: использование API v1 04.09.2017 15:58:33 debugger.go:97: запуск процесса с аргументами: [/go/src/debug] не удалось процесс запуска: fork/exec /go/src/debug: операция не разрешена


person Frozendragon    schedule 05.09.2017    source источник


Ответы (1)


Синтаксис компоновки правильный. Но параметр security_opt будет применен к новому экземпляру контейнера и поэтому недоступен во время сборки, как вы пытаетесь сделать с помощью команды Dockerfile RUN.

Правильный путь должен быть:

Файл Docker:

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']
person webofmars    schedule 28.10.2018