Включить crond в альпийском контейнере - PullRequest
0 голосов
/ 05 июля 2019

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 не распознавать услугу в то же время:

  • sh, кажется, знает имя crond,

  • было /etc/crontabs/root

Чего мне не хватает?

...