基於centos7-python3的scrapyd容器

創建Dockerfile文件

FROM centos:7.6.1810
MAINTAINER sgs # 指定作者信息
RUN set -ex \
    # 預安裝所需組件
    && yum install -y wget tar libffi-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make initscripts \
    && wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz \
    && tar -zxvf Python-3.7.4.tgz \
    && cd Python-3.7.4 \
    && ./configure prefix=/usr/local/python3 \
    && make \
    && make install \
    && make clean \
    && rm -rf /Python-3.7.4* \
    && yum install -y epel-release \
    && yum install -y python-pip
# 設置默認爲python3
RUN set -ex \
    # 刪除舊版本python(僅刪除鏈接)
    && rm /usr/bin/python && rm /usr/bin/pip \
    # 配置默認爲python3
    && ln -s /usr/local/python3/bin/python3.7 /usr/bin/python \
    && ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
# 修復因修改python版本導致yum失效問題
RUN set -ex \
    && sed -i "s#/usr/bin/python#/usr/bin/python2.7#" /usr/bin/yum \
    && sed -i "s#/usr/bin/python#/usr/bin/python2.7#" /usr/libexec/urlgrabber-ext-down \
    && yum install -y deltarpm
# 加載python3的環境變量
ENV PATH=$PATH:/usr/local/python3/bin
# 基礎環境配置
RUN set -ex \
    # 修改系統時區爲東八區
    && rm -rf /etc/localtime \
    && ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && yum install -y vim \
    # 安裝定時任務組件
    && yum -y install cronie
# 支持中文
RUN yum install kde-l10n-Chinese -y
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
# 更新pip版本
RUN pip install --upgrade pip
ENV LC_ALL zh_CN.UTF-8

# 安裝python爬蟲以來庫
RUN pip install gevent requests[security] selenium pymysql redis pymongo scrapy scrapyd \
        scrapyd-client scrapy-redis scrapy-splash DBUtils xmltodict lxml beautifulsoup4 \
        pyquery gevent

RUN sed -i "s/127.0.0.1/0.0.0.0/g" /usr/local/python3/lib/python3.7/site-packages/scrapyd/default_scrapyd.conf
RUN sed -i "s/max_proc_per_cpu = 4/max_proc_per_cpu = 10/g" /usr/local/python3/lib/python3.7/site-packages/scrapyd/default_scrapyd.conf

RUN mkdir /scrapyd_work
WORKDIR /scrapyd_work

EXPOSE 6800

CMD ["scrapyd"]
 

# 構建鏡像

docker build -t $image_name .       # 自定義image_name 注意最後的點

# 啓動鏡像

docker run -dit --name $container_name -p 6800:6800 $image_name

# 訪問scrapyd

瀏覽器訪問本地的6800端口即可

# 進入容器內部

docker exec -it $container_name /bin/bash

 

===================================================================

構建基於python2的scrapyd 刪除Dockerfile中有關python安裝及環境配置的操作即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章