直接使用cron启动
Dockerfile:
1 2 3 4 5 6 7 8 9 10
| FROM ubuntu:14.04
RUN apt-get update && apt-get install -y cron
ADD . /app WORKDIW /app
RUN echo '* * * * * root bash -c "/app/cron.sh"' >> /etc/crontab
CMD ["cron", "-f"]
|
注意
有时候在docker容器中启动定时任务的时候可能取不到环境变量,此时可以这样启动定时任务:
1
| env >> /etc/environment && cron -f
|
使用supervisor管理
cron.conf:
1 2 3 4 5 6
| [program:cron] command=bash -c "cron -f" user=root autostart=true autorestart=true redirect_stderr=true
|
Dockerfile:
1 2 3 4 5 6 7 8 9 10 11
| FROM ubuntu:14.04
RUN apt-get update && apt-get install -y supervisor cron
ADD . /app WORKDIW /app
RUN echo '* * * * * root bash -c "/app/cron.sh"' >> /etc/crontab RUN cat cron.conf > /etc/supervisor/conf.d/cron.conf
CMD ["supervisor", "-n"]
|