Я пытаюсь настроить обычную задачу на экземпляре amazon ec2, который запустит несколько контейнеров docker. Я создал скрипт startup_service.sh
в моем домашнем каталоге:
cd ~
docker-compose pull && docker-compose up
В этом же домашнем каталоге у меня есть файл docker-compose.yml
, который определяет мои контейнеры и изображение. Я протестировал этот файл sh startup_service.sh
, и он работает, как ожидалось
Я добавил разрешение на выполнение этого startup_service.sh
файла и создал cronjob с помощью crontab -e:
50 11 * * * /usr/bin/sh /home/ec2-user/startup_service.sh
Однако это не работает (при запуске docker ps
не отображаются ни создаваемые контейнеры, ни что-либо еще).
Однако, проверяя журналы cron, кажется, что задача фактически выполняется sudo grep -C 3 "startup" /var/log/cron
:
Feb 27 11:42:01 ip-172-31-27-90 crond[3188]: (ec2-user) RELOAD (/var/spool/cron/ec2-user)
Feb 27 11:44:00 ip-172-31-27-90 crontab[18011]: (ec2-user) LIST (ec2-user)
Feb 27 11:48:54 ip-172-31-27-90 crontab[18064]: (ec2-user) LIST (ec2-user)
Feb 27 11:50:01 ip-172-31-27-90 CROND[18153]: (ec2-user) CMD (/usr/bin/sh /home/ec2-user/startup_service.sh)
Feb 27 11:50:02 ip-172-31-27-90 CROND[18156]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Feb 27 11:53:05 ip-172-31-27-90 crontab[18232]: (ec2-user) LIST (ec2-user)
Feb 27 12:00:01 ip-172-31-27-90 CROND[18343]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Как я могу правильно настроить эту работу cron?