踩了 5-6个小时的坑,各类测试。人要没了。不过结果我已经满意了。
这篇文章是对 https://segmentfault.com/a/11... 的完善与排初BUG!python
我用的Docker (我记得以前不用docker的时候scrapyd的配置文件好像是默认的 0.0.0.0)
可是我发现 Docker容器里面 默认是 bind 127.0.0.1 (真是 f--k了.. 弄了好几个小时没发现)
若是你用的docker, 先在Docker 同级目录下新建一个 default_scrapyd.conf
而后写入以下配置(不用犹豫,所有复制进去便可):web
[scrapyd] eggs_dir = eggs logs_dir = logs items_dir = jobs_to_keep = 5 dbs_dir = dbs max_proc = 0 max_proc_per_cpu = 4 finished_to_keep = 100 poll_interval = 5.0 bind_address = 0.0.0.0 http_port = 6800 debug = off runner = scrapyd.runner application = scrapyd.app.application launcher = scrapyd.launcher.Launcher webroot = scrapyd.website.Root [services] schedule.json = scrapyd.webservice.Schedule cancel.json = scrapyd.webservice.Cancel addversion.json = scrapyd.webservice.AddVersion listprojects.json = scrapyd.webservice.ListProjects listversions.json = scrapyd.webservice.ListVersions listspiders.json = scrapyd.webservice.ListSpiders delproject.json = scrapyd.webservice.DeleteProject delversion.json = scrapyd.webservice.DeleteVersion listjobs.json = scrapyd.webservice.ListJobs daemonstatus.json = scrapyd.webservice.DaemonStatus
最后在你的Dockerfile中末尾写入(视状况而定。 每一个人的目录结构都不一样)docker
COPY default_scrapyd.conf /usr/local/lib/python3.6/site-packages/scrapyd/default_scrapyd.conf
scrapyd部署须要两步:json
很明显:2 是依赖 1 的。segmentfault
可是,docker-compose command: 只能运行一条命令。 我按照常理使用N种思想一想让他支持多条命令:bash
最荒唐的命令以下:(我一直窃喜,觉得找到解决办法了,就一直以这个命令为轴作调试,测试。。。。)app
# command: # - /bin/bash # - -c # - | # scrapyd # scrapyd-deploy Cython_lin -p Baidu
这个命令有两种结果(这两种结果还tm是随机的。 生无可恋):scrapy
到此为止::::::: 我上面说的都是错误的方式!!!!!!!!!!!!!!
(差点一棵树上勒到死, 既然docker-compose文件内部只能运行一条命令。那么咱们拿外面去运行啊!!)
(思想已经绝望僵化的我, 此次是真的看见了但愿,曙光)ide
docker-compose.yml文件里面只写:测试
command: scrapyd
而后保存退出, 而后执行 :
docker-compose up -d # 咱们须要让 scrapyd启动一会,才能够启动 scrapy-deploy的(等一小会就好了)
而后继续执行:
docker-compose exec crawl scrapyd-deploy Cython_lin -p Baidu 特别注意!说明如下!(docker-compose命令有两种方式): docker-compose exec 正确 docker-compose run 错误 (在外面千万不要用这种 (固然我是说我这个业务))
也许有些错误很小, 可是当你怀疑变多的时候,脑海会出现海量解决问题的分支。而后机械排BUG, 最终生无可恋。。。。。其实有时不妨先冷静下来, 而后专一,一槌定音。找出BUG!!!