@@ -269,43 +269,49 @@ ssh-keygen -t rsa -C "备注" -f 生成路径/文件名
269269
270270默认的爬虫镜像只打包了` feapder ` 、` scrapy ` 框架,若需要其它环境,可基于` .env ` 文件里的` SPIDER_IMAGE ` 镜像自行构建
271271
272- 如将常用的python库打包到镜像,修改feaplat下的 ` feapder_dockerfile `
272+ 如自定义python版本,安装常用的库等,需修改feaplat下的 ` feapder_dockerfile `
273273
274274```
275- FROM registry.cn-hangzhou.aliyuncs.com/feapderd/feapder:[最新版本号]
275+ # 基于最新的版本,若需要自定义python版本,则要求feapder版本号>=2.4
276+ FROM registry.cn-hangzhou.aliyuncs.com/feapderd/feapder:2.4
276277
277- # 安装自定义的python版本,如3.7
278+ # 安装自定义的python版本,3.10.8
278279RUN set -ex \
279- && wget https://www.python.org/ftp/python/3.7.5 /Python-3.7.5 .tgz \
280- && tar -zxvf Python-3.7.5 .tgz \
281- && cd Python-3.7.5 \
282- && ./configure prefix=/usr/local/python3 \
280+ && wget https://www.python.org/ftp/python/3.10.8 /Python-3.10.8 .tgz \
281+ && tar -zxvf Python-3.10.8 .tgz \
282+ && cd Python-3.10.8 \
283+ && ./configure prefix=/usr/local/python-3.10.8 \
283284 && make \
284285 && make install \
285286 && make clean \
286- && rm -rf /Python-3.7.5* \
287- && yum install -y epel-release \
288- && yum install -y python-pip
287+ && rm -rf /Python-3.10.8* \
288+ # 配置软链接
289+ && ln -s /usr/local/python-3.10.8/bin/python3 /usr/bin/python3.10.8 \
290+ && ln -s /usr/local/python-3.10.8/bin/pip3 /usr/bin/pip3.10.8
289291
290- # 设置默认为python3
292+ # 删除之前的默认python版本
291293RUN set -ex \
292- # 备份旧版本python
293- && mv /usr/bin/python /usr/bin/python27 \
294- && mv /usr/bin/pip /usr/bin/pip-python2.7 \
295- # 配置默认为python3
296- && ln -s /usr/local/python3/bin/python3.7 /usr/bin/python \
297- && ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3 \
298- && ln -s /usr/local/python3/bin/pip3 /usr/bin/pip \
299- && ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
294+ && rm -rf /usr/bin/python3 \
295+ && rm -rf /usr/bin/pip3 \
296+ && rm -rf /usr/bin/python \
297+ && rm -rf /usr/bin/pip
300298
301- ENV PATH=$PATH:/usr/local/python3/bin/
299+ # 设置默认为python3.10.8
300+ RUN set -ex \
301+ && ln -s /usr/local/python-3.10.8/bin/python3 /usr/bin/python \
302+ && ln -s /usr/local/python-3.10.8/bin/python3 /usr/bin/python3 \
303+ && ln -s /usr/local/python-3.10.8/bin/pip3 /usr/bin/pip \
304+ && ln -s /usr/local/python-3.10.8/bin/pip3 /usr/bin/pip3
305+
306+ # 将python3.10.8加入到环境变量
307+ ENV PATH=$PATH:/usr/local/python-3.10.8/bin/
302308
303309# 安装依赖
304310RUN pip3 install feapder \
305311 && pip3 install scrapy
306312
307313# 安装node依赖包,内置的node为v10.15.3版本
308- RUN npm install packageName -g
314+ # RUN npm install packageName -g
309315
310316```
311317
@@ -325,12 +331,10 @@ SPIDER_IMAGE=my_feapder:1.0
325331
326332注:
3273331 . 若有多个worker服务器,且没将镜像传到镜像服务,则需要手动将镜像推到其他服务器上,否则无法拉取此镜像运行
328- 2 . 若自定义了python版本,则需要删除之前feaplat的挂载,命令 ` docker volume rm feapder_python37 ` ,否则可能库的版本不兼容。若报该挂载被占用,则需要删除对应的容器,命令 ` docker stop 容器id && docker rm 容器id `
329- 若提示volume被使用,如
334+ 2 . 若自定义了python版本,则需要添加挂载,否则feaplat上自动安装的依赖库不会保留。挂载方式:修改` docker-compose.yaml ` 的 SPIDER_RUN_ARGS参数。如
330335 ```
331- Error response from daemon: remove feapder_python37: volume is in use - [xxxxx, xxxxx ]
336+ SPIDER_RUN_ARGS=["--mount type=volume,source=feapder_python3.10,destination=/usr/local/python-3.10.8" ]
332337 ```
333- 则需要先手动依次删除容器,` docker rm xxxx ` ,最后使用` docker volume ls ` 验证` feapder_python37 ` 挂载是否已经被删除
334338
335339## 价格
336340
0 commit comments