|
相关命令- 使用 python:2.7.13 镜像,是基于buildpack-deps:jessie镜像的,是一个Debian系统。
- docker中使用cron执行python脚本时:
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命令执行脚本时
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下的,所以在要在要执行的脚本开始部分加上
import syssys.path.append("/usr/local/lib/python2.7/site-packages")
这可能和docker容器的用户管理有关,执行cron的用户环境变量的不同。
- debian 中 crontab 程序叫 cron,服务名也是cron,不同系统的使用方式会有所不同。
service cron start/stop/restart/reload/status# 直接启动cron
DockerfileFROM python:2.7.13WORKDIR /rootCOPY ./etc/apt.sources.list /etc/apt/sources.listRUN apt-get update -y && \ apt-get install -y cron && \ touch /var/log/cron.logADD ./etc/crontab /etc/cron.d/crontab# tail 可以防止容器自动退出运行CMD cron && tail -f /var/log/cron.log
相关文件- ./etc/apt.sources.list
apt-get 使用阿里云源
deb http://mirrors.aliyun.com/debian wheezy main contrib non-freedeb-src http://mirrors.aliyun.com/debian wheezy main contrib non-freedeb http://mirrors.aliyun.com/debian wheezy-updates main contrib non-freedeb-src http://mirrors.aliyun.com/debian wheezy-updates main contrib non-freedeb http://mirrors.aliyun.com/debian-security wheezy/updates main contrib non-freedeb-src http://mirrors.aliyun.com/debian-security wheezy/updates main contrib non-free
*/1 * * * * root echo $(date) >> /var/log/cron.log 2>&1
作者:weineeL
链接:https://www.jianshu.com/p/fe2b257f2d41
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
|
|