Docker 部署Scrapy的详解
程序员文章站
2023-11-21 18:31:40
假设我们要在10台ubuntu 部署爬虫如何搞之?用传统的方法会吐血的,除非你记录下来每个步骤,然后步骤之间的次序还完全一样,这样才行。但是这样还是累啊,个别软件下载又需要...
假设我们要在10台ubuntu 部署爬虫如何搞之?用传统的方法会吐血的,除非你记录下来每个步骤,然后步骤之间的次序还完全一样,这样才行。但是这样还是累啊,个别软件下载又需要时间。所以docker出现了。docker把系统,各种需要的应用,还有设置编译成一个image,然后 run一下就可以了。跟虚拟机的区别是不需要而外的物理支持,共用的。
1. 部署步骤
1.1 上传本地scrapy爬虫代码除了settings外到git 服务器
1.2 编写dockerfile文件,把settings和requirements.txt 也拷贝到image里,一起打包成一个image
dockerfile内容:
from ubuntu run apt-get update run apt-get install -y git run apt-get install -y nano run apt-get install -y redis-server run apt-get -y dist-upgrade run apt-get install -y openssh-server run apt-get install -y python3.5 python3-pip run apt-get install -y zlib1g-dev libffi-dev libssl-dev run apt-get install -y libxml2-dev libxslt1-dev run mkdir /code workdir /code add ./requirements.txt /code/ add ./settings.py /code/ run mkdir /code/myspider run pip3 install -r requirements.txt volume [ "/data" ]
requirements.txt 内容:
beautifulsoup4 scrapy setuptools scrapy_redis redis sqlalchemy pymysql pillow
整个目录结构:
docker build -t fox6419/scrapy:scrapytag .
fox6419是用户名,scrapytag是tag
成功后,执行docker images可以在本地看到image
1.3 打包的image 上传到docker hub中
docker push username/repository:tag
push的命令格式是这样的,我这边就是:
docker push fox6419/scrapy:scrapytag
1.4 在digitalocean这种主机商创建带docker应用的ubuntu 16.04版本
1.5 登陆docker,拉下1.3的image,然后run起来
docker run -it fox6419/scrapy:scrapytag /bin/bash
1.6 命令进去后,git clone 1.1中的爬虫,然后复制images里的settings到爬虫目录,然后执行scrapy crawl xxx即可
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。