我有一些Scrapy Python脚本,它们使用AWS CloudWatch使用了望塔模块进行日志记录。这是一个docker容器。手动运行时一切正常。我现在正在寻找cron工作来安排每个刮刀。这是它破裂的时候。因为它在docker容器中,我无法找到cron日志的保存位置。
docker容器的入口点是:
CMD cron -L15 && tail -f /var/log/cron.log
但是,文件/var/log/cron.log为空。
cron.d / spiders文件在我测试时非常基本:
* * * * * root /usr/local/bin/scrapy runspider /spiders/myspider.py
如果我使用CloudWatch和了望塔删除日志记录,则刮板按预期运行。
https://pypi.python.org/pypi/watchtower
如果我从docker容器中运行命令
/usr/local/bin/scrapy runspider /spiders/myspider.py
在docker容器中,在文件中记录回来也可以。我认为问题在于环境变量。守望台在环境变量中查找
AWS_ACCESS_KEY_ID = AWS_SECRET_ACCESS_KEY = AWS_DEFAULT_REGION =
所以问题是当由cron运行时,环境变量不可用。我试过跑
env >> /etc/environment
但这没有用。