drone.io: containerd: запись /proc/14/oom_score_adj: разрешение отклонено

Я пытаюсь перепроектировать плагин drone.io docker и понять, как запустить демон docker на этапе конвейера (DinD).

drone.io использует библиотеку github.com/cncd/pipeline для компиляции и выполнения файлов .drone.yml.

Первое, что делает plugins/docker, — это запускает демон docker:

+ /usr/local/bin/dockerd -g /var/lib/docker

Это работает, если нормально в официальном плагине, но я не могу заставить его работать с моим собственным изображением, где я делаю то же самое:

pipeline.yml

workspace:
  base: /go
  path: src/github.com/fnbk/hello

pipeline:
  test:
    image: fnbk/drone-daemon

fnbk/drone-daemon/run.sh

#!/bin/sh

/usr/local/bin/dockerd     # <= ERROR: containerd: write /proc/17/oom_score_adj: permission denied

# ...

Это даст мне следующую ошибку:

containerd: write /proc/14/oom_score_adj: permission denied

Полный пример можно найти на github: https://github.com/cncd/pipeline/pull /45

Любые предложения высоко ценятся.


person Florian Boehmak    schedule 03.07.2018    source источник


Ответы (1)


Вам нужно добавить свой плагин в белый список через переменную окружения DRONE_ESCALATE, которая передается на сервер. Это значение по умолчанию:

DRONE_ESCALATE=plugins/docker,plugins/gcr,plugins/ecr

Итак, вы бы передали что-то вроде этого:

-DRONE_ESCALATE=plugins/docker,plugins/gcr,plugins/ecr
+DRONE_ESCALATE=plugins/docker,plugins/gcr,plugins/ecr,fnbk/my-custom-plugin

Обратите внимание, что это должно быть только имя изображения. Он не должен включать тег.

person Brad Rydzewski    schedule 03.07.2018
comment
Оно работает! Спасибо, что указали мне правильное направление :-) - person Florian Boehmak; 04.07.2018