Docker - 以非 root 用户身份启动 CRON

问题描述 投票:0回答:1

我目前在 docker 容器中遇到 cron 问题。构建容器并安装 cron 后,我将入口点设置为:

ENTRYPOINT ["/bin/bash", "-c", "cron && sleep 99d"]

我在

/etc/cron.hourly/
中有一个有效的 shell 文件(使用 run-parts 进行测试)。

但是,我也以非 root 用户身份运行我的容器。因此,当我启动容器后进入容器时,cron 没有运行,并且我无法启动该服务。在切换到这个非root用户之前,我也尝试直接运行命令

RUN cron

USER non-root

但这似乎也没有启动该过程。问题是 cron.pid 文件需要 root 访问权限才能写入。显然,如果我以 root 用户身份启动容器,cron 进程就会启动。我做错了什么吗?目前唯一缺少的是 cron 服务未在容器启动时启动。

docker cron
1个回答
0
投票

我发现最简单的选择是更改

root
用户密码:

# cron
RUN echo 'root:toor' | chpasswd
COPY crontab /crontab
RUN crontab /crontab
CMD echo 'toor' | su -c cron && php -a
# /cron

USER non-root
© www.soinside.com 2019 - 2024. All rights reserved.