直接使用cron启动
Dockerfile:
| 12
 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:
| 12
 3
 4
 5
 6
 
 | [program:cron]command=bash -c "cron -f"
 user=root
 autostart=true
 autorestart=true
 redirect_stderr=true
 
 | 
Dockerfile:
| 12
 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"]
 
 |