@V-ampre

Почему не запускаются задачи в cron в Docker?

У меня есть проект на python, мне нужно по расписанию запускать скрипты оттуда:

# docker-compose.yml
version: "3"

services:
  ...

  crontab:
    container_name: crontab
    build:
      context: .
      dockerfile: crontab/Dockerfile
      args:
        PROJECT_DIR: /opt/project
        LOGS_DIR: /opt/project/logs
        SERVER_NAME: ${SERVER_NAME}
    volumes:
      - .:/opt/project
      - ./logs:/opt/project/logs
    stdin_open: true
    tty: true
    depends_on:
      - redis
  
  redis:
    image: redis:alpine

# Dockerfile

FROM python:3.6-slim-buster

ARG LOGS_DIR
ARG PROJECT_DIR
ARG SERVER_NAME
ENV LOGS_DIR=${LOGS_DIR}
ENV PROJECT_DIR=${PROJECT_DIR}
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
RUN apt-get update && apt-get -y install libpq-dev gcc python3-dev musl-dev netcat cron
WORKDIR ${PROJECT_DIR}
COPY . ${PROJECT_DIR}
RUN pip install -r requirements.txt
COPY crontab/${SERVER_NAME}/ /etc/cron.d/
RUN for file in /etc/cron.d/*; do crontab $file; done
RUN touch /var/log/cron.log && env >> /etc/environment
CMD ["cron", "-f"]

# Cron file
* * * * * root python $PROJECT_DIR/run.py run_some_script >> $LOGS_DIR/run_some_script.cron.log
* * * * * root echo 'cron_works' >> $LOGS_DIR/run_some_script.cron.log


В итоге все нормально билдится, но в лог файл не пишется ни результат скрипта, ни cron_works
  • Вопрос задан
  • 279 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы