Как я могу выполнить Docker-контейнер с помощью сценария оболочки, а также войти в этот контейнер и запустить задание cron? - PullRequest
0 голосов
/ 11 ноября 2019

Я пытаюсь выполнить Docker-контейнер с помощью сценария оболочки. Когда контейнер активен, нужно войти внутрь контейнера, используя тот же сценарий, и проверить состояние cronjob, работающего внутри контейнера. Все это нужно сделать одним скриптом

1 Ответ

1 голос
/ 11 ноября 2019

Когда контейнер открыт, нужно войти внутрь контейнера, используя тот же сценарий, и проверить статус 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...