Context
Я пытаюсь планировать некоторые задания приема пищи в Alpine контейнере.Мне потребовалось некоторое время, чтобы понять, почему мои задания cron не запустились : кажется, что crond не работает
rc-service -l | grep crond
Согласно Alpine'sдокументация , crond сначала должен быть запущен с openrc
(т. е. какой-то systemctl
).Вот Dockerfile
FROM python:3.7-alpine
# set work directory
WORKDIR /usr/src/collector
RUN apk update \
&& apk add curl openrc
# ======>>>> HERE !!!!!
RUN rc-service crond start && rc-update add crond
# install dependencies
RUN pip install --upgrade pip
RUN pip install pipenv
COPY ./Pipfile /usr/src/collector/Pipfile
RUN pipenv install --skip-lock --system --dev
# copy entrypoint.sh
COPY ./entrypoint.sh /usr/src/collector/entrypoint.sh
# copy project
COPY . /usr/src/collector/
# run entrypoint.sh
ENTRYPOINT ["/usr/src/collector/entrypoint.sh"]
entrypoint.sh
просто добавляет задания в конце /etc/crontabs/root
Проблема
Я получаю следующую ошибку:
* rc-service: service `crond' does not exist
ERROR: Service 'collector' failed to build: The command '/bin/sh -c rc-service crond start && rc-update add crond' returned a non-zero code: 1
Все начинает казаться немного круглым.Как может rc-service не распознавать услугу в то же время:
Чего мне не хватает?