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



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

drone.io使用库github.com/cncd/pipeline来编译和执行 .drone.yml 文件。

plugins/docker做的第一件事是启动 docker 守护进程:

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

如果在官方插件中很好,这就可以工作,但我无法让它与我自己的图像一起工作,我做同样的事情:

管道.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

任何建议都非常感谢。

您需要通过传递给服务器的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

请注意,这应该只是映像名称。它不得包含标记。

相关内容

  • 没有找到相关文章

最新更新