[英]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.