簡體   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