当前位置: 首页 > news >正文

Docker容器化 | 超简单部署 FireCrawl

灵感来源

  • 【RAG实战】Docker容器化 🔥 FireCrawl | 基于docker-compose.yaml一键运行的网页解析API
  • 参考仓库地址

建议给大佬点点star,这么简单的教程非常实用

测试环境

  • ubuntu 24.04

可能要安装的依赖

sudo apt install docker-buildx

拉取FireCrawl官方仓库

git clone https://github.com/mendableai/firecrawl.git

需要新增的dockerfile文件

路径: 根目录/apps/api/server.Dockerfile

# server.Dockerfile
FROM node:lts AS base
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
LABEL fly_launch_runtime="Node.js"
RUN corepack enable
COPY . /app
WORKDIR /app

FROM base AS prod-deps
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile

FROM base AS build
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile

RUN pnpm install
RUN pnpm run build:nosentry

FROM base
RUN apt-get update -qq && \
    apt-get install --no-install-recommends -y chromium chromium-sandbox && \
    rm -rf /var/lib/apt/lists /var/cache/apt/archives
COPY --from=prod-deps /app/node_modules /app/node_modules
COPY --from=build /app /app

# Start the server by default, this can be overwritten at runtime
EXPOSE 3002
ENV PUPPETEER_EXECUTABLE_PATH="/usr/bin/chromium"
CMD [ "pnpm", "run", "start:production" ]

路径: 根目录/apps/api/worker.Dockerfile

# worker.Dockerfile
FROM node:lts AS base
# 添加 corepack_npm_registry 环境变量,你可以根据需要修改其值
ENV COREPACK_NPM_REGISTRY=https://registry.npmmirror.com
ENV PNPM_HOME="/pnpm"
ENV PATH="$PNPM_HOME:$PATH"
LABEL fly_launch_runtime="Node.js"
RUN corepack enable
COPY . /app
WORKDIR /app

FROM base AS prod-deps
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --prod --frozen-lockfile

FROM base AS build
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile
RUN pnpm install
RUN pnpm run build:nosentry

FROM base
RUN apt-get update -qq && \
    apt-get install --no-install-recommends -y chromium chromium-sandbox && \
    rm -rf /var/lib/apt/lists /var/cache/apt/archives
COPY --from=prod-deps /app/node_modules /app/node_modules
COPY --from=build /app /app

EXPOSE 8080
ENV PUPPETEER_EXECUTABLE_PATH="/usr/bin/chromium"
CMD [ "pnpm", "run", "worker:production" ]

执行docker镜像构建

构建: plb/firecrawl-worker:local

先切换到路径: 根目录/apps/api/ ,然后执行:

# docker buildx build -f worker.Dockerfile -t {你自定义的Worker镜像}:{标签名}
# 我这边设置镜像名: plb/firecrawl-worker:local
sudo docker buildx build -f worker.Dockerfile -t plb/firecrawl-worker:local .

然后就能构建出一个名字 plb/firecrawl-worker:local 的镜像,接下来构建 plb/firecrawl-server:local 镜像。

构建: plb/firecrawl-server:local
# docker buildx build -f server.Dockerfile -t {你自定义的Worker镜像}:{标签名}
# 我这边设置镜像名: plb/firecrawl-server:local
sudo docker buildx build -f server.Dockerfile -t plb/firecrawl-server:local .

创建docker-compose.ymal文件

这个文件是用来同时启动上面两个镜像的,记得替换关键镜像名字

路径: 根目录/apps/api/docker-compose.yaml

# docker-compose.yaml
version: '3.1'
services:
  redis:
    image: redis:latest
    restart: always
    volumes:
      - redis_data:/data

  worker:
    environment:
      - REDIS_URL=redis://redis:6379
      - USE_DB_AUTHENTICATION=false
    image: plb/firecrawl-worker:local
    pull_policy: always
    restart: always

  server:
    environment:
      - REDIS_URL=redis://redis:6379
      - USE_DB_AUTHENTICATION=false
      - HOST=0.0.0.0
    image: plb/firecrawl-server:local
    pull_policy: always
    ports:
      - "3002:3002"
    restart: always
    
volumes:
  redis_data:

开始运行已经构建好的docker镜像

切换到路径: 根目录/apps/api/

docker compose up

测试是否成功

curl -X GET http://localhost:3002/test

如果有返回值,那么就是部署成功了。

相关文章:

  • Elasticsearch 自动补全搜索 - autocomplete
  • C#中表达式树实现动态拼接lamda表达式查询条件
  • STL之string类的模拟实现
  • Eclipse插件开发六:使用Web前端技术开发AI助手页面
  • JDK最详细安装教程,零基础入门到精通,收藏这篇就够了
  • 网络原理-
  • springboot pagehelper分页插件封装
  • 【Bert】自然语言(Language Model)入门之---Bert
  • 企业内部知识库:安全协作打造企业智慧运营基石
  • leetcode 2585. 获得分数的方法数
  • C/C++ 格式化输出( unsigned long long)
  • vue stores全局状态共享
  • alphafold3本地部署
  • 划分字母区间
  • 【Qt】常用控件(一)
  • 【练习】【二分】力扣热题100 153. 寻找旋转排序数组中的最小值
  • C++ Qt建立一个HTTP服务器
  • 鸿蒙开发:V2版本装饰器之@Monitor装饰器
  • 阐解WiFi信号强度
  • Linux centOS7 bash编程小技巧
  • 来上海喝云南咖啡!上海国际咖啡文化节助力咖啡产业破圈出海
  • 证监会副主席王建军被查
  • 龚惠民已任江西省司法厅党组书记
  • 金砖国家外长会晤落幕,外交部:发出了反对单边霸凌行径的“金砖声音”
  • 解放日报:上海深化改革开放,系统集成创新局
  • 科学家为AI模型设置“防火墙”,以防止被不法分子滥用