Crontab не может запустить сценарий оболочки с помощью команды docker?

У меня есть простой сценарий оболочки для запуска команды docker ниже, который отлично работает, если я запускаю его вручную. Однако это не сработало, если я запустил его с помощью cron. Я не видел входа в систему /var/log/cron.. И я протестировал cron, создав простой скрипт для доступа к файлу, и он работал нормально. Cron не работает с докером?

cat start.sh
#!/bin/bash
docker run --shm-size 2g --rm --net sitespeedio_default \
    -v "$(pwd):/sitespeed.io" sitespeedio/sitespeed.io:24.6.0\
    --pageCompleteWaitTime 30000 \
    lex-login.js lex-view_call_call_only.js -n 1 \
    --influxdb.host influxdb \
    --influxdb.username $INFLUX_U \
    --influxdb.password $INFLUX_P --spa --multi

crontab -l
2 * * * * /home/ec2-user/start.sh >/dev/null 2>&1

Строка crontab(5) явно подавляет вывод команды, возможно, поэтому вы ничего не видите. Скрипт исполняемый? Действительно ли в вашей среде есть /bin/bash (образы Docker на основе Alpine не будут)? Вам нужно быть root, чтобы запускать docker команды?

David Maze 11.05.2022 22:48

@DavidMaze Мне нужно было убедиться, что у пользователя, запускающего crontab, есть Docker в пути и какую оболочку использует crontab. Он начал работать после того, как в crontab были добавлены SHELL и PATH.

Zhang 11.05.2022 23:52
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
0
2
16
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Обновите содержимое crontab до:

2 * * * *  /bin/bash /home/ec2-user/start.sh >/dev/null 2>&1

Затем убедитесь, что у пользователя crontab есть разрешение на запуск этого скрипта.

Другие вопросы по теме