Когда контейнер открыт, нужно войти внутрь контейнера, используя тот же сценарий, и проверить статус cronjob, работающего внутри контейнера.
вам не нужно проверять статусЕсли процесс cron запущен или нет, вы должны спроектировать образ docker таким образом, если контейнер работает, значит, выполняется cronjob, cron
должен быть основным процессом контейнера, если контейнер процесса cron умирает. Например
FROM alpine
RUN echo "* * * * * echo \"hello from cronjob\" " | crontab -
CMD ["crond","-f"]
построить образ
docker build -t my_cronjob_image
Теперь скрипт будет
#!/bin/bash
container_name=my-cront-container
image_name="my_cronjob_image"
if sudo docker ps -a --format '{{.Names}}' | grep -Eq "^${container_name}\$"; then
echo "container is up and running, its mean job is also runinng"
# but still you can see the process
docker exec -it $container_name ash -c "ps"
#or list of cron
docker exec $container_name ash -c "crontab -e"
else
echo 'container not running, starting container'
docker run -dit --name $container_name $my_cronjob_image
fi