Deerflow部署-X86架构-在ubuntu2204操作系统上使用docker模式部署

文章目录


前言

同事安排搞一台虚拟机部署Deerflow。


一、Deerflow是什么?

Deerflow是一个完全开源的超级智能体

部署地址:https://github.com/bytedance/deer-flow/blob/main/README_zh.md

二、部署记录

1.文件上传

将脚本和代码文件上传到/opt/目录

2.docker、make环境安装

shell 复制代码
cd /opt/
chmod a+x ./setup_docker_root.sh
./setup_docker_root.sh

apt install  -y make

setup_docker_root.sh脚本文件

shell 复制代码
#!/bin/bash

set -e  # 遇到错误立即退出

echo "========== 开始配置阿里云镜像源 =========="

# 备份原有的 sources.list
cp /etc/apt/sources.list /etc/apt/sources.list.bak.$(date +%Y%m%d%H%M%S)

# 写入阿里云 Ubuntu 22.04 镜像源
cat > /etc/apt/sources.list <<EOF
deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse

deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
EOF

echo "✅ 阿里云镜像源已配置"

# 更新 apt 缓存
echo "🔄 正在更新软件包列表..."
apt update -y

echo "========== 开始安装 Docker =========="

# 安装必要依赖
apt install -y ca-certificates curl gnupg lsb-release

# 添加 Docker 官方 GPG 密钥(通过阿里云镜像加速)
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# 添加 Docker APT 仓库(使用阿里云镜像)
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  $(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list

# 更新 apt 缓存(包含 Docker 仓库)
apt update -y

# 安装 Docker 引擎及相关组件
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 启动并启用 docker 服务
systemctl enable --now docker

echo "🎉 Docker 安装完成!版本信息如下:"

3.准备config.yaml和.env文件

代码如下(示例):

c 复制代码
cd /opt/

unzip deer-flow-main.zip

cd /opt/deer-flow-main

cp config.example.yaml config.yaml

cp .env.example .env

cp frontend/.env.example frontend/.env

cp frontend/Dockerfile frontend/Dockerfile.example

cp backend/Dockerfile backend/Dockerfile.example

3.1 修改镜像源

shell 复制代码
docker pull docker.1ms.run/node:22-alpine

sed -i 's|node:22-alpine|docker.1ms.run/node:22-alpine|g' frontend/Dockerfile

docker pull docker.1ms.run/nginx:alpine
sed -i 's|image: nginx:alpine|image: docker.1ms.run/nginx:alpine|g' docker/docker-compose.yaml
sed -i 's|image: nginx:alpine|image: docker.1ms.run/nginx:alpine|g' docker/docker-compose-dev.yaml


docker pull docker.1ms.run/library/docker:cli
sed -i 's|COPY --from=docker:cli|COPY --from=docker.1ms.run/library/docker:cli|g' backend/Dockerfile

docker pull docker.1ms.run/library/python:3.12-slim-bookworm
sed -i 's|FROM python:3.12-slim-bookworm|FROM docker.1ms.run/library/python:3.12-slim-bookworm|g' backend/Dockerfile docker/provisioner/Dockerfile

3.2 backend/Dockerfile修改镜像内源到阿里云

yaml 复制代码
# Optionally override apt mirror for restricted networks (e.g. APT_MIRROR=mirrors.aliyun.com)
RUN if [ -n "${APT_MIRROR}" ]; then \
      sed -i "s|deb.debian.org|${APT_MIRROR}|g" /etc/apt/sources.list.d/debian.sources 2>/dev/null || true; \
      sed -i "s|deb.debian.org|${APT_MIRROR}|g" /etc/apt/sources.list 2>/dev/null || true; \
    fi

# add 
RUN set -ex; \
    echo ">>> Step 1: Replacing system sources to Aliyun..."; \
    if [ -f /etc/apt/sources.list ]; then \
        sed -i 's|http://deb.debian.org|https://mirrors.aliyun.com|g' /etc/apt/sources.list; \
        sed -i 's|http://security.debian.org|https://mirrors.aliyun.com/debian-security|g' /etc/apt/sources.list; \
    fi; \
    # 兼容新版 Debian Bookworm (sources.list.d/*.sources)
    find /etc/apt/sources.list.d/ -type f -name "*.sources" -exec sed -i 's|http://deb.debian.org|https://mirrors.aliyun.com|g' {} +; \
    find /etc/apt/sources.list.d/ -type f -name "*.sources" -exec sed -i 's|http://security.debian.org|https://mirrors.aliyun.com/debian-security|g' {} +

4. 执行安装

shell 复制代码
make-init

结果

shell 复制代码
root@ubuntu:/opt/deer-flow-main# make docker-init
==========================================
  DeerFlow Init --- Pull Sandbox Image
==========================================

Detected local sandbox mode --- no Docker image required.

✓ Docker environment is ready.

Next step: make docker-start
shell 复制代码
make-start

结果

shell 复制代码
root@ubuntu:/opt/deer-flow-main# make docker-start
==========================================
  Starting DeerFlow Docker Development
==========================================

Detected sandbox mode: local
Provisioner disabled (not required for this sandbox mode).

Setting DEER_FLOW_ROOT=/opt/deer-flow-main

Created extensions_config.json from example
Building and starting containers...
[+] Building 925.7s (34/34) FINISHED                                                                                                                                                                    
 => [internal] load local bake definitions                                                                                                                                                         0.0s
 => => reading from stdin 1.72kB                                                                                                                                                                   0.0s
 => [frontend internal] load build definition from Dockerfile                                                                                                                                      1.5s
 => => transferring dockerfile: 2.47kB                                                                                                                                                             0.0s
 => [langgraph internal] load build definition from Dockerfile                                                                                                                                     1.1s
 => => transferring dockerfile: 2.70kB                                                                                                                                                             0.0s
 => [gateway internal] load metadata for docker.1ms.run/library/python:3.12-slim-bookworm                                                                                                          2.7s
 => [langgraph internal] load metadata for ghcr.io/astral-sh/uv:0.7.20                                                                                                                             7.2s
 => [gateway internal] load metadata for docker.1ms.run/library/docker:cli                                                                                                                         2.6s
 => [frontend internal] load metadata for docker.1ms.run/node:22-alpine                                                                                                                            2.1s
 => [langgraph internal] load .dockerignore                                                                                                                                                        1.2s
 => => transferring context: 758B                                                                                                                                                                  0.0s
 => [frontend base 1/6] FROM docker.1ms.run/node:22-alpine@sha256:4d64b49e6c891c8fc821007cb1cdc6c0db7773110ac2c34bf2e6960adef62ed3                                                                 5.0s
 => => resolve docker.1ms.run/node:22-alpine@sha256:4d64b49e6c891c8fc821007cb1cdc6c0db7773110ac2c34bf2e6960adef62ed3                                                                               0.2s
 => [frontend internal] load build context                                                                                                                                                         3.1s
 => => transferring context: 16.95MB                                                                                                                                                               0.2s
 => [gateway internal] load build context                                                                                                                                                          5.0s
 => => transferring context: 2.58MB                                                                                                                                                                0.1s
 => [gateway uv-source 1/1] FROM ghcr.io/astral-sh/uv:0.7.20@sha256:2fd1b38e3398a256d6af3f71f0e2ba6a517b249998726a64d8cfbe55ab34af5e                                                             398.0s
 => => resolve ghcr.io/astral-sh/uv:0.7.20@sha256:2fd1b38e3398a256d6af3f71f0e2ba6a517b249998726a64d8cfbe55ab34af5e                                                                                 1.3s
 => => sha256:711e40d15079913d30013f63af5b4a4ddc3d5b07a7eab09e12b094357e6ffe7b 98B / 98B                                                                                                           0.6s
 => => sha256:f563f515ce8400dfe4690e03f99d4f9fed08fc3e0f89461ee6ceb7e31a7e95fb 18.88MB / 18.88MB                                                                                                 369.6s
 => => extracting sha256:f563f515ce8400dfe4690e03f99d4f9fed08fc3e0f89461ee6ceb7e31a7e95fb                                                                                                         13.0s
 => => extracting sha256:711e40d15079913d30013f63af5b4a4ddc3d5b07a7eab09e12b094357e6ffe7b                                                                                                          6.1s
 => [langgraph] FROM docker.1ms.run/library/docker:cli@sha256:70303ed0d265aee7bf4be0ddffe20b0b6e4f69ffa125e2a20cbb3718b99688db                                                                    17.9s
 => => resolve docker.1ms.run/library/docker:cli@sha256:70303ed0d265aee7bf4be0ddffe20b0b6e4f69ffa125e2a20cbb3718b99688db                                                                           1.5s
 => [langgraph stage-1 1/9] FROM docker.1ms.run/library/python:3.12-slim-bookworm@sha256:31c0807da611e2e377a2e9b566ad4eb038ac5a5838cbbbe6f2262259b5dc77a0                                          9.0s
 => => resolve docker.1ms.run/library/python:3.12-slim-bookworm@sha256:31c0807da611e2e377a2e9b566ad4eb038ac5a5838cbbbe6f2262259b5dc77a0                                                            1.3s
 => [frontend base 2/6] RUN if [ -n "" ]; then       export COREPACK_NPM_REGISTRY="";     fi &&     corepack enable && corepack install -g pnpm@10.26.2                                           13.3s 
 => [langgraph stage-1 2/9] RUN if [ -n "" ]; then       sed -i "s|deb.debian.org||g" /etc/apt/sources.list.d/debian.sources 2>/dev/null || true;       sed -i "s|deb.debian.org||g" /etc/apt/sou  7.3s
 => [frontend base 3/6] RUN pnpm config set store-dir /root/.local/share/pnpm/store                                                                                                                5.1s 
 => [gateway stage-1 3/9] RUN set -ex;     echo ">>> Step 1: Replacing system sources to Aliyun...";     if [ -f /etc/apt/sources.list ]; then         sed -i 's|http://deb.debian.org|https://mi  3.5s 
 => [langgraph stage-1 4/9] RUN apt-get update && apt-get install -y     curl     build-essential     gnupg     ca-certificates     && mkdir -p /etc/apt/keyrings     && curl -fsSL https://deb  489.5s 
 => [frontend base 4/6] RUN if [ -n "" ]; then pnpm config set registry ""; fi                                                                                                                     3.9s 
 => [frontend base 5/6] WORKDIR /app                                                                                                                                                               1.6s 
 => [frontend base 6/6] COPY frontend ./frontend                                                                                                                                                   2.5s
 => [frontend dev 1/1] RUN cd /app/frontend && pnpm install --frozen-lockfile                                                                                                                    205.9s
 => [frontend] exporting to image                                                                                                                                                                131.4s
 => => exporting layers                                                                                                                                                                           70.6s
 => => exporting manifest sha256:2897bb170b8eb8469311193698ff4147938ad61bbc25f0a6f614c3762d27ba53                                                                                                  0.3s
 => => exporting config sha256:addc9dda684169142846b17e91dfbceed28beab16d53595148efe819e7ea7422                                                                                                    0.3s
 => => exporting attestation manifest sha256:c8d7222b655d4be4331cc169b2acbc17cb34c71fa63ecc0e75fec5165ad1ece6                                                                                      2.5s 
 => => exporting manifest list sha256:bfb1889efafb2f9805682f17020d8acd5255a4d81aa708126bc5200cd49c5453                                                                                             0.3s 
 => => naming to docker.io/library/deer-flow-dev-frontend:latest                                                                                                                                   0.0s 
 => => unpacking to docker.io/library/deer-flow-dev-frontend:latest                                                                                                                               55.1s 
 => [frontend] resolving provenance for metadata file                                                                                                                                              0.0s 
 => [langgraph stage-1 5/9] COPY --from=docker.1ms.run/library/docker:cli /usr/local/bin/docker /usr/local/bin/docker                                                                              3.0s
 => [langgraph stage-1 6/9] COPY --from=uv-source /uv /uvx /usr/local/bin/                                                                                                                         1.5s
 => [gateway stage-1 7/9] WORKDIR /app                                                                                                                                                             1.2s
 => [gateway stage-1 8/9] COPY backend ./backend                                                                                                                                                   2.0s
 => [gateway stage-1 9/9] RUN --mount=type=cache,target=/root/.cache/uv     sh -c "cd backend && uv sync"                                                                                        175.6s
 => [langgraph] exporting to image                                                                                                                                                                97.6s
 => => exporting layers                                                                                                                                                                           43.8s
 => => exporting manifest sha256:7da671987f6a001fb3567c043af2aa20ecad399a4fdb3edaf7231a15fdb361f2                                                                                                  1.1s
 => => exporting config sha256:e7750116160e1249968dd5d654d7075f3f24e6b5f307956a63708fc6ec05cd62                                                                                                    0.4s
 => => exporting attestation manifest sha256:9cbf969a409c4b7ec22aa2ba41e4078e21f23aae3c398f35779dbf4286cf5f9f                                                                                      1.2s
 => => exporting manifest list sha256:3bfdd4ecde55a26a18c1bd5c1d2033a978d3eb8c5c22211feedf1b8d179f384d                                                                                             0.4s
 => => naming to docker.io/library/deer-flow-dev-langgraph:latest                                                                                                                                  0.1s
 => => unpacking to docker.io/library/deer-flow-dev-langgraph:latest                                                                                                                              48.1s
 => [gateway] exporting to image                                                                                                                                                                  96.5s
 => => exporting layers                                                                                                                                                                           43.8s
 => => exporting manifest sha256:2bd96c97ff92fef11866fe089826a537cc785f25410833bfa5caee6a254c6aa4                                                                                                  1.2s
 => => exporting config sha256:69703fcf1a7529051e528355c5891dc7b3346e1644205c56ab2a5b3f0d4024c3                                                                                                    0.4s
 => => exporting attestation manifest sha256:3335f7285f5f3359a69041312593775db94644b0215e4eaeb1cc5fc4498607e0                                                                                      1.2s
 => => exporting manifest list sha256:deabd05dabf917f1a3b7eced24c376c640c4bc0f1466f417db340dde1b288d93                                                                                             0.3s
 => => naming to docker.io/library/deer-flow-dev-gateway:latest                                                                                                                                    0.0s
 => => unpacking to docker.io/library/deer-flow-dev-gateway:latest                                                                                                                                47.0s
 => [gateway] resolving provenance for metadata file                                                                                                                                              55.5s
 => [langgraph] resolving provenance for metadata file                                                                                                                                            20.3s
[+] up 10/10
 ✔ Image deer-flow-dev-gateway         Built                                                                                                                                                      926.1s
 ✔ Image deer-flow-dev-langgraph       Built                                                                                                                                                      926.1s
 ✔ Image deer-flow-dev-frontend        Built                                                                                                                                                      926.1s
 ✔ Network deer-flow-dev_deer-flow-dev Created                                                                                                                                                    0.5s
 ✔ Volume deer-flow-dev_gateway-venv   Created                                                                                                                                                    0.2s
 ✔ Volume deer-flow-dev_langgraph-venv Created                                                                                                                                                    0.2s
 ✔ Container deer-flow-frontend        Started                                                                                                                                                    142.9s
 ✔ Container deer-flow-gateway         Started                                                                                                                                                    143.3s
 ✔ Container deer-flow-langgraph       Started                                                                                                                                                    143.0s
 ✔ Container deer-flow-nginx           Started                                                                                                                                                    11.6s

==========================================
  DeerFlow Docker is starting!
==========================================

  🌐 Application: http://localhost:2026
  📡 API Gateway: http://localhost:2026/api/*
  🤖 LangGraph:   http://localhost:2026/api/langgraph/*

  📋 View logs: make docker-logs
  🛑 Stop:      make docker-stop

5.访问页面

总结

部署完成,主要还是把需要的镜像改成国内源的,然后构建的时候把容器内的源改成阿里云的。

相关推荐
魔都吴所谓2 小时前
【Linux】Ubuntu22.04 Docker+四大数据库(挂载本地)一键安装脚本
linux·数据库·docker
大道V至简2 小时前
解决docker apt安装缓慢,切换国内源
docker
无忧智库2 小时前
零信任安全体系:从“围墙城堡”到“零信任动态管控”的架构演进与实战洞察(PPT)
安全·架构
Coder个人博客2 小时前
10_apollo_docker_scripts子模块软件架构分析
架构
Coder个人博客2 小时前
08_apollo_scripts_scripts子模块软件架构分析
架构
Coder个人博客2 小时前
09_apollo_docker_build子模块软件架构分析文档
架构
cool32003 小时前
二进制基于kubeasz部署 K8s 1.34.x 高可用集群实战指南-第四章:kubeasz部署集群k8s系统(4-4)
云原生·容器·kubernetes
CSND7403 小时前
什么是Docker,容器是什么,镜像是什么,一文解读
运维·人工智能·docker·容器
cool32003 小时前
ETCD每天凌晨2点自动备份 + 手动完整恢复
云原生·容器·kubernetes