参考材料:

https://github.com/ustc-table-mining/TabClaw

打算长期使用或部署:采用 Dockerfile + docker build + docker save/load 的方式更规范。

1.下载tabClaw源码

2.解压源码,在源码根目录创建如下两个文件

创建Dockerfile文件

FROM python:3.11.11

WORKDIR /workspace

COPY requirements.txt .

RUN pip install --no-cache-dir --upgrade pip \
    && pip install --no-cache-dir -r requirements.txt

CMD ["tail", "-f", "/dev/null"]

创建docker-compose.yml

version: '3.9'

services:
  tabclaw:
    build:
      context: /home/TabClaw-main
      dockerfile: Dockerfile

    image: tabclaw_pip:20260605

    container_name: tabclaw

    restart: unless-stopped

    ports:
      - "11443:8000"

    volumes:
      - /home/TabClaw-main:/workspace
 
    command: >
      bash -c "
      bash run.sh
      "

3.构建镜像

 小技巧:若requirements.txt中依赖不确定完整,可参考如下命令先启动容器,然后手动执行依赖安装,再运行程序测试依赖并补全,直至程序可以运行。最后,退出销毁容器,再构建镜像。

# 启动容器
docker run -d --name ipagent_pip   --network=host \
-v /opt/agent/docker/requirements.txt:/app \
python:3.11.11 \
tail -f /dev/null

# 进入容器
docker exec -it ipagent_pip /bin/bash

# 切换到项目目录执行依赖安装命令
pip install --no-cache-dir --upgrade pip \
    && pip install --no-cache-dir -r requirements.txt

# 安装依赖后,测试程序是否可以运行
# 缺失依赖补全并安装后,重新测试程序

# 退出容器并删除
exit
docker rm -f ipagent_pip

# 使用补全后的requirements.txt构建镜像
docker-compose build

docker compose命令(推荐)
    docker-compose build
或dockerfile命令
    docker build -t tabclaw_pip:20260605 .

构建完成后查看:

docker images | grep tabclaw

4.启动容器

docker compose up -d

进入容器

docker exec -it tabclaw bash

5.保存镜像(打包导出后离线部署)

导出为 tar 文件:

docker save -o tabclaw_pip-20260605.tar tabclaw_pip:20260605

或者压缩:

docker save tabclaw_pip:20260605 | gzip > tabclaw_pip-20260605.tar.gz

6. 导入镜像

导入 tar

docker load -i tabclaw_pip-20260605.tar

导入 tar.gz

gunzip -c tabclaw_pip-20260605.tar.gz | docker load

验证:

docker images | grep tabclaw

说明:

在Dockerfile中没有将源码构建到镜像中,而是在docker-compose.yml中将源码挂载到了容器中,也方便持久化和修改配置文件。

若希望将源码构建到镜像中,可以调整Dockerfile如下。即通过COPY . .将源码所在目录的所有内容放到镜像中。

后续可通过“docker run -d   --name tabclaw   -p 11445:8000   tabclaw_pip:20260605”命令直接运行容器,不需要下载源码,但得通过docker cp命令将容器中程序的配置文件先下载到宿主机,修改文件后再同步至容器内。

或者依旧下载源码通过docker-compose.yml的方式启动,此时宿主机上源码将挂载覆盖容器内的源码。

FROM python:3.11.11

WORKDIR /workspace

COPY requirements.txt .

RUN pip install --no-cache-dir --upgrade pip \
    && pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["tail", "-f", "/dev/null"]

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐