zoukankan      html  css  js  c++  java
  • docker 运行scrpyd

    Dockerfile

    FROM python:3.7
    ADD . /data
    WORKDIR /data
    RUN pip3 install -r requirements.txt  -i https://pypi.doubanio.com/simple
    CMD rm -rf /data/twistd.pid;scrapyd

    requirements.txt

    requests
    scrapy
    scrapyd
    scrapy-redis
    pymysql

    生成镜像

    docker build -t scrapyd:latest .

    创建/data/scrapyd/conf/scrapyd.conf配置文件

    [scrapyd]
    # 服务监听端口
    http_port=6800
    # 服务监听ip, 默认是127.0.0.1
    bind_address=0.0.0.0
    # 启动时的scrapy进程并发数, 如果没有设置或者是0, 则是系统可用的cpu数量乘以`max_proc_per_cpu`的值, 默认是0
    max_proc=0
    # 每个cpu的scrapy进程并发数,默认是:4
    max_proc_per_cpu=32
    # 是否开启调试模式, 默认是off, 如果开启, 当调用`JSON API`发生错误时, 会返回详细的错误信息
    debug=off
    # scrapyd-deploy上传的egg文件的保存路径, 默认是scrapyd运行的当前目录
    eggs_dir=/data/scrapyd_data/eggs
    # scrapyd运行是的数据库路径, 包括爬虫队列信息
    dbs_dir=/data/scrapyd_data/dbs
    # Scrapy运行时的日志保存路径, 如果禁用则设置为空
    logs_dir=/data/scrapyd_data/logs
    # Scrapy运行时产生的item的数据保存路径, 因为一般都是导出或者保存到数据库, 所以这个建议禁用, 默认是禁用状态
    items_dir=
    # 每个爬虫运行完成后的logs和items数据保存数量, 也就是假设同一个爬虫运行到第六次, 则会删除前5次爬虫产生的数据, 这个配置项之前是`logs_to_keep`
    jobs_to_keep=50
    # 保存在启动器中的已完成的进程数量
    finished_to_keep=200
    # 轮训队列的秒数, 也就是多长时间检查一下爬虫队列
    poll_interval=1
    # 启动子进程的模块
    runner= scrapyd.runner
    # scrapyd启动的app应用文件
    application=scrapyd.app.application
    # scrapyd资源跟目录
    webroot = scrapyd.website.Root
    # 节点的展示名称, 默认是${socket.gethostname()}
    # node_name=
    launcher    = scrapyd.launcher.Launcher
    
    # 以下是调用接口的url路径和对应的scrapyd类, 熟悉源码可以自己进行开发
    [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

    创建/root/scrapyd_data用于存放scrapyd的文件

    通过配置文件生成容器

    docker run --name scrapyd -p 6800:6800 -d -v /etc/localtime:/etc/localtime -v /data/scrapyd/conf:/etc/scrapyd  -v /root/scrapyd_data/:/data/ scrapyd:latest
  • 相关阅读:
    mongoDB 小练习
    pymongo 操作
    mongoDB 大文件存储方案, JS 支持展示
    mongoDB 固定集合
    mongoDB 聚合操作
    mongoDB 索引
    mongoDB 其他数据类型
    mongoDB 文档操作_删
    mongoDB 文档操作_改
    【探讨】linux环境,执行重启了php后php.ini依然不生效
  • 原文地址:https://www.cnblogs.com/wtil/p/14956839.html
Copyright © 2011-2022 走看看