繁体   English   中英

setpgid:Docker 不允许操作

[英]setpgid: Operation not permitted on Docker

以下内容为何有效的任何想法(Docker 容器运行无误):

FROM alpine:3.14.0

RUN apk update && \
    apk --no-cache add dcron

COPY entry.sh /entry.sh
RUN chmod +x /entry.sh

CMD /entry.sh
# entry.sh
#!/bin/sh

# start cron
/usr/sbin/crond -f

而以下

FROM alpine:3.14.0

RUN apk update && \
    apk --no-cache add dcron

CMD /usr/sbin/crond -f

给我

cnt  | setpgid: Operation not permitted
cnt exited with code 1

我在这里错过了什么?

看起来它与 Linux 进程组 ID 和 session ID 的工作方式有关(更多详细信息在credentials(7)中)并且应该在 dcron 中修复。

目前, 如果使用-f选项启动,dcron 将调用 setpgid

  • 如果 dcron 在容器中作为 PID1 启动 - 它可以工作。
  • 如果 dcron 在容器中作为非 PID1 启动 - 它也可以工作。
  • 但是,如果某些其他进程以 PID1 开始,然后execve()到 dcron - 它不起作用(setpgid 返回 EPERM,原因在setpgid(2)中解释)。

更新:https://github.com/dubiousjim/dcron/issues/13

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM