繁体   English   中英

如何使用 shell 脚本执行 docker 容器并输入该容器并运行 cron 作业?

[英]How can I execute a docker container using shell script and also enter in that container and run a cron job?

我正在尝试使用 shell 脚本执行 docker 容器。 一个容器启动需要使用相同的脚本进入容器并检查容器内运行的 cronjob 的状态。 所有这些都需要在一个脚本中完成

一个容器启动需要使用相同的脚本进入容器并检查容器内运行的 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM