drone.io:容器化:写入/ proc / 14 / oom_score_adj:权限被拒绝

时间:2018-07-03 17:35:49

标签: drone.io

我正在尝试对 drone.io docker插件进行逆向工程,并了解如何在管道步骤(DinD)中运行docker守护程序。

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

任何建议都会受到赞赏。

1 个答案:

答案 0 :(得分: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

请注意,这应该仅是图像名称。它不得包含标签。