scrapy 疑问🤔️,各位大佬都是怎么把 scrapy 部署到服务器?

2018-07-12 22:59:47 +08:00
 xiaopenggggggg

小弟敲了一个小爬虫,网上搜到有 scrapyd 方式部署,于是本地 pip install scrapyd。在本地测试完全爬虫跑得妥妥的,于是想仍到 docker 容器里面去。写了一个 DockerFile,内容大致如下:

FROM python:3.5.5
ENV PATH /usr/local/bin:$PATH
ADD . /scrapy_weather
WORKDIR /scrapy_weather
COPY ./scrapyd.conf /etc/scrapyd/
EXPOSE 6800
CMD scrapyd

构建了一个 docker 镜像,然后在自己的 mac 本的 docker 里面跑得飕飕的,没有一点问题,于是把镜像推送出去,结果在 centos 的服务器上面,同样的镜像,会报以下错误:

Another twistd server is running, PID 5

This could either be a previously started instance of your application or a
different application entirely. To start a new one, either run it in some other
directory, or use the --pidfile and --logfile parameters to avoid clashes.	

小弟实在是没招了,想与各位 py 大佬们交流一波,scrapy 的优雅部署方式

4276 次点击
所在节点    Python
9 条回复
lanpong
2018-07-12 23:45:29 +08:00
哪有什么优雅的方式。
1. 推一份源码,直接跑
2. 推一份源码,用虚拟环境
3. docker

推源码的方式有很多种,scp、git、upload
lightening
2018-07-12 23:48:56 +08:00
怎么会这样,不应该发生啊
xiaopenggggggg
2018-07-13 09:45:13 +08:00
@lightening 确实很奇怪,在本地的 mac 本的 docker 中跑这个镜像不会报错,但是仍到服务器会报这个错误。然后在本机进入 docker 容器里面,敲 scrapyd 命令也会报同样的错误。实在不知道为什么服务器抽风了😫
Molita
2018-07-13 11:02:10 +08:00
按提示的那个 加上 pidfile logfile 试一试呗
lightening
2018-07-13 15:17:49 +08:00
去服务器重新 build 试试。感觉像是 pid 文件没删掉?
xiaopenggggggg
2018-07-13 19:40:37 +08:00
@lightening 解决了该问题,是内存不足,直接把容器给 kill 掉了。
my8100
2018-11-15 00:00:29 +08:00
如何简单高效地部署和监控分布式爬虫项目 v2ex.com/t/507933
111qqz
2018-11-15 11:45:09 +08:00
@xiaopenggggggg 遇到了同样的问题,不过我在 docker 里面运行就不会报错,在外面用 entrypoint 或者 CMD 就都会报错,楼主最后是怎么解决的呢? 内存不足是指容器里面还是 host 中?
111qqz
2018-11-15 11:57:22 +08:00
@lightening 感谢,解决了。果然是因为 twistd.pid 文件没有删除。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/470386

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX