scrapy-redis项目打包docker镜像+部署kubernetes

本文详细介绍了如何将Scrapy-Redis项目打包成Docker镜像,利用Docker Compose进行管理和打包,以及如何使用Kubernetes进行部署。内容包括Dockerfile的创建、Docker镜像的构建与推送、Docker Compose的yaml文件配置、Kubernetes关键概念的理解以及Redis和Scrapy项目的Kubernetes部署步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:随着容器技术的发展,Docker+Kubernetes的解决方案越来越流行,接下来,我们就来了解下Scrapy项目基于Docker+Kubernetes的部署和维护方案,内容包含:

  • 如何把Scrapy项目打包成一个Docker镜像;
  • 如何利用Docker Compose来方便地维护和打包镜像;
  • 如何使用Kubernetes 来部署Scrapy项目的Docker镜像;

一.将Scrapy 项目打包成Docker 镜像

1.1 准备工作

  • 准备好一个scrapy-redis分布式爬虫项目
  • 安装好Docker并能正常使用 docker 命令

1.2 创建 Docckerfile

  1. 新建项目依赖环境包

项目根目录新建一个 requirement 文件,如下所示:

scrapy
aiohttp
scrapy-redis
environs
......
# 也可以指定版本号,如:scrapy>=2.5.0
  1. 项目根目录新建一个Dockerfile

注意:文件不加任何后缀名!将其内容改为:

FROM python:3.9		# 代表使用基础镜像,运行当前项目
WORKDIR /app	# 运行路径,这样在Docker中,最终运行程序所在路径是/app
COPY requirements.txt .		# 将本地的依赖文件复制到Docker中,即复制到 /app 下
RUN pip3 install -r requirements.txt	# 读取上步复制的依赖文件,并安装所列出来的依赖库
COPY . .	# 将当前文件夹下的所有文件全部复制到Docker的 /app 路径下
# 这里再次复制,因为这样将相对费时的依赖库安装操作放在相对靠前的层级实现。并且在依赖文件不变情况下,再次构建Docker镜像时候,就直接用这个该构建好的层级,不会在费时间构建依赖库。
CMD ["scrapy" "crawl" "book"]		# 项目的启动命令了,建议使用双引号
  1. 修改项目环境变量

首先确保重要redis变量,url地址等使用环境变量获取,修改下settings.py,有助于灵活修改项目

from environs import Env
env = Env()
env.read_env()
REDIS_URL = env.str('REDIS_URL')
  1. 构建镜像

接下来,进入到项目更目录镜像构建,命令如下

docker build -t scrapyredisdemo .
# 注意命令最后一个 . 点号,代表当前运行目录

构建过程根据Dockerfile步骤来,没有出现报错就说明构建成功
查看构建好的镜像执行:

docker images

如果需要删除镜像的话执行:

docker rmi -f <iamges-name / images-id>

构建好,在执行之前新建一个 .env 文件,其内容如下:

REDIS_URL=redis://host.docker.internal:6379
# host.docker.internal 这代表Docker所在宿主机的IP地址,在Docker内部就可以访问宿主机的相关资源
# 如果有其他变量,也可以自行添加,提前需要设置项目文件的变量名

同时在本机运行redis 数据库运行在6379端口

  1. 运行检测

现在可以先在本地测试运行,命令如下:

docker run --env-file .env scrapyredisdemo

运行结果和python运行一致说明成功了

  1. 推送至 Docker Hub

Docker Hub 是镜像托管平台,很多镜像都能在这找到。创建步骤:

  • 在 https://hub.docker.com 上注册一个账号,如:bobi,名字自行修改;
  • 新建一个私有Repository:scrapyredisdemo;
  • 那么推送地址就可以使用: bobi/scrapyredisdemo

回到命令端口登录Docker Hub,输入:

docker login
# 运行后按步骤输入上面注册的账号密码完成登录

接下来为新建的镜像打一个标签:

docker tag scrapyredisdemo:latest bobi/scrapyredisdemo:latest

然后就可以推送命令了:

docke
### 如何将AI模型文件转换GGUF格式 要将AI模型文件转换GGUF格式,通常可以通过特定的脚本来完成这一过程。以下是关于此操作的具体说明: #### 转换流程概述 `convert_hf_to_gguf.py` 是一个常用的脚本,用于将Hugging Face上的模型文件转换GGUF格式[^3]。该脚本能够读取来自Hugging Face的预训练权重,并按照GGUF的标准重新组织这些数据。 #### 安装必要的依赖项 在执行转换之前,需要确保已安装所需的依赖库。这一步骤可能涉及Python包管理器pip或其他工具。具体命令如下所示: ```bash pip install transformers sentencepiece accelerate safetensors ``` 上述命令会安装一系列必需的库,以便成功运行转换脚本[^2]。 #### 使用脚本进行转换 假设已经准备好了目标模型的位置,则可通过调用 `convert_hf_to_gguf.py` 来启动转换进程。下面是一个典型的例子: ```bash python convert-hf-to-gguf.py --out_type q4_0 ./models/microsoft/phi-2 ``` 在此实例中,`--out_type q4_0` 参数指定了输出文件应采用何种量化级别;而最后的部分则是输入模型所在的目录路径[^4]。 #### 自动生成手动设置输出位置 当不提供额外参数时,默认情况下生成的GGUF文件会被放置于源模型所在同一文件夹下[^1]。然而,如果希望更改默认行为或者指定确切的目标地址,那么可以利用 `--dst` 选项实现这一点。 #### 关于GGUF格式的意义 GGUF代表了一种改进后的单文件共享方案,旨在克服先前GGML版本中存在的局限性——比如缺乏足够的灵活性以及较差的兼容性和可维护性等问题[^5]。因此,在实际应用过程中选用这种新型格式往往能带来诸多便利之处。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值