参考材料:
https://github.com/ustc-table-mining/TabClaw
打算长期使用或部署:采用 Dockerfile + docker build + docker save/load 的方式更规范。
1.下载tabClaw源码
2.解压源码,在源码根目录创建如下两个文件
创建Dockerfile文件
bash
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
bash
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.构建镜像
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 文件:
bash
docker save -o tabclaw_pip-20260605.tar tabclaw_pip:20260605
或者压缩:
bash
docker save tabclaw_pip:20260605 | gzip > tabclaw_pip-20260605.tar.gz
6. 导入镜像
导入 tar
bash
docker load -i tabclaw_pip-20260605.tar
导入 tar.gz
bash
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的方式启动,此时宿主机上源码将挂载覆盖容器内的源码。
bash
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"]