gpt4 book ai didi

docker - Alpine : "service ` crond' 不存在”

转载 作者:行者123 更新时间:2023-12-02 18:51:27 27 4
gpt4 key购买 nike

我正在尝试运行一个 Node 12.13.0 Alpine Docker 容器,该容器每 15 分钟运行一次脚本。根据 Alpine's wiki cron section ,我应该能够在 Dockerfile 中添加一个 RUN 任务以通过以下方式将 crond 作为服务运行:

rc-service crond start && rc-update add crond

然而,这会返回一个错误:
rc-service: service `crond' does not exist

运行一个单独的 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", "--"]

CMD ["./startup.sh"]

任何帮助在这里将不胜感激。

最佳答案

问题是一些 Alpine Docker 容器没有 busybox-initscripts package安装。安装后,crond 作为服务运行。我遇到的另一个问题是 run-parts ,该命令执行 /etc/periodic 中的文件folders 期望没有扩展名,所以我去掉了它,现在一切正常。

工作 Dockerfile 如下所示:

FROM node:12.13.0-alpine

RUN apk upgrade --available

RUN apk add --no-cache tini openrc busybox-initscripts

WORKDIR /opt/app

COPY runScraper /etc/periodic/15min/

RUN chmod a+x /etc/periodic/15min/runScraper

COPY . .

RUN chmod a+x startup

ENTRYPOINT ["/sbin/tini", "--"]

CMD ["./startup"]

关于docker - Alpine : "service ` crond' 不存在”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58577707/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com