docker 中使用crontab
相关命令
- 使用 python:2.7.13 镜像,是基于buildpack-deps:jessie镜像的,是一个Debian系统。
docker中使用cron执行python脚本时:
1
sys.path = ['/var/code/XHTSpider/XHTSpider/es', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']
在直接使用python命令执行脚本时
1
sys.path = ['/var/code/XHTSpider/XHTSpider/es', '/usr/local/lib/python27.zip', '/usr/local/lib/python2.7', '/usr/local/lib/python2.7/plat-linux2', '/usr/local/lib/python2.7/lib-tk', '/usr/local/lib/python2.7/lib-old', '/usr/local/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/site-packages']
注意 dite-packages 和 site-packages。然而在使用pip安装包时,是安装在site-packages下的,所以在要在要执行的脚本开始部分加上
1
2import sys
sys.path.append("/usr/local/lib/python2.7/site-packages")这可能和docker容器的用户管理有关,执行cron的用户环境变量的不同。
debian 中 crontab 程序叫 cron,服务名也是cron,不同系统的使用方式会有所不同。
1
2
3service cron start/stop/restart/reload/status
# 直接启动
cron
Dockerfile
1 | FROM python:2.7.13 |
相关文件
./etc/apt.sources.list
apt-get 使用阿里云源
1
2
3
4
5
6deb http://mirrors.aliyun.com/debian wheezy main contrib non-free
deb-src http://mirrors.aliyun.com/debian wheezy main contrib non-free
deb http://mirrors.aliyun.com/debian wheezy-updates main contrib non-free
deb-src http://mirrors.aliyun.com/debian wheezy-updates main contrib non-free
deb http://mirrors.aliyun.com/debian-security wheezy/updates main contrib non-free
deb-src http://mirrors.aliyun.com/debian-security wheezy/updates main contrib non-free
./etc/crontab
1
*/1 * * * * root echo $(date) >> /var/log/cron.log 2>&1