我正在尝试运行一个 Node 12.13.0 Alpine Docker 容器,该容器每 15 分钟运行一次脚本。根据Alpine 的 wiki cron 部分,我应该能够在 Dockerfile 中添加一个 RUN 任务来通过以下方式将 crond 作为服务运行:
rc-service crond start && rc-update add crond
Run Code Online (Sandbox Code Playgroud)
然而,这会返回一个错误:
rc-service: service `crond' does not exist
Run Code Online (Sandbox Code Playgroud)
运行一个单独的 Docker 容器只是为了针对这个 Docker 容器运行 cron 任务不是一种选择。这个容器已经非常轻量级了,并没有做太多事情。
这是我的 Dockerfile:
FROM node:12.13.0-alpine
RUN apk add --no-cache tini openrc
WORKDIR /opt/app
COPY script.sh /etc/periodic/15min/
RUN chmod a+x /etc/periodic/15min/script.sh
RUN rc-service crond start && rc-update add crond
COPY . .
RUN chmod a+x startup.sh
ENTRYPOINT ["/sbin/tini", "--"] …Run Code Online (Sandbox Code Playgroud)