Docker运行cron
1 min read
有时只需要运行最简单的单命令cron任务。alpine Docker镜像提供了一个很好的选择,这个镜像通过busybox提供了一个简单灵活的cron包。
1. 挂载卷
复杂的定时任务,可以通过挂载卷的方式。
docker run -it --rm -v $PWD/tasks.cron:/tasks.cron alpine:3.5 sh -c "crontab /tasks.cron && crond -f -L /dev/stdout"
tasks.cron
* * * * * echo hello
2. 构建Docker镜像
构建自己的Docker镜像,通过使用ENTRYPOINT可以更简洁的运行cron任务
FROM alpine:3.8
LABEL maintainer="xwxwgo.com"
COPY entrypoint.sh /
RUN chmod +x /entrypoint.sh
ENTRYPOINT [ "/entrypoint.sh" ]
entrypoint.sh
#!/bin/sh
set -e
echo "$1" | crontab - && crond -f -L /dev/stdout
构建、执行
# 构建镜像
$ docker build -t xw-cron ./
# 执行
$ docker run -it --rm xw-cron "* * * * * echo hello"
More
Last updated on 2019-02-13