refactor(cat-bodhi): deploy pinned upstream source

This commit is contained in:
2026-08-14 00:15:22 +08:00
parent 207fc4cc2f
commit 3a341e7a79
6 changed files with 44 additions and 23 deletions
+2 -5
View File
@@ -1,5 +1,2 @@
node_modules
.git
*.md
start-local-ai.bat
/tmp
*
!Dockerfile
+11 -2
View File
@@ -1,3 +1,5 @@
# syntax=docker/dockerfile:1.7
# CAT-BODHI Sprite Segmentation API
# Node.js + Python + PyTorch in one container
#
@@ -11,6 +13,8 @@ FROM python:3.11-slim
ARG NODE_MAJOR=22
ARG TORCH_INDEX=https://download.pytorch.org/whl/cpu
ARG PIP_MIRROR=https://pypi.tuna.tsinghua.edu.cn/simple
ARG CAT_BODHI_REF=eaf9d27b4ebe3821da983106a78aa1c745532527
ARG CAT_BODHI_ARCHIVE_SHA256=73257f7c9832dd06f958e43cc41d1dccff91788fe49d5384c104d24c75862d4d
# 中科大 Debian 镜像源
RUN sed -i 's|http://deb.debian.org/debian|https://mirrors.ustc.edu.cn/debian|g' /etc/apt/sources.list.d/debian.sources \
@@ -35,8 +39,13 @@ RUN pip install --no-cache-dir \
Pillow
WORKDIR /app
COPY . .
RUN mkdir -p assets/ai/cats assets/ai/beads
RUN curl -fL --retry 5 --retry-all-errors --connect-timeout 20 \
"https://codeload.github.com/ziyuezhou1/CAT-BODHI/tar.gz/${CAT_BODHI_REF}" \
-o /tmp/cat-bodhi.tar.gz \
&& echo "${CAT_BODHI_ARCHIVE_SHA256} /tmp/cat-bodhi.tar.gz" | sha256sum -c - \
&& tar -xzf /tmp/cat-bodhi.tar.gz --strip-components=1 -C /app \
&& rm /tmp/cat-bodhi.tar.gz \
&& mkdir -p assets/ai/cats assets/ai/beads
EXPOSE 8080
ENV PORT=8080
+13 -8
View File
@@ -2,22 +2,24 @@ services:
cat-bodhi:
build:
context: .
# GPU 加速:取消下面注释(需先安装 nvidia-container-toolkit
# args:
# TORCH_INDEX: https://download.pytorch.org/whl/cu126
args:
CAT_BODHI_REF: eaf9d27b4ebe3821da983106a78aa1c745532527
CAT_BODHI_ARCHIVE_SHA256: 73257f7c9832dd06f958e43cc41d1dccff91788fe49d5384c104d24c75862d4d
# GPU 加速:取消下面注释(需先安装 nvidia-container-toolkit
# TORCH_INDEX: https://download.pytorch.org/whl/cu126
container_name: cat-bodhi
restart: unless-stopped
env_file:
- .env
environment:
- PORT=8080
- SPRITE_SEG_ROOT=/opt/sprite_alpha_seg_pytorch
- SPRITE_SEG_ROOT=/app/sprite_alpha_seg_pytorch
- SPRITE_SEG_PYTHON=/usr/local/bin/python
- SPRITE_SEG_CHECKPOINT=/opt/sprite_alpha_seg_pytorch/checkpoints/unet_sprite_ft.pt
- SPRITE_SEG_OUT_DIR=/opt/sprite_alpha_seg_pytorch/outputs/cat_match
- SPRITE_SEG_CHECKPOINT=/app/sprite_alpha_seg_pytorch/checkpoints/unet_sprite_ft.pt
- SPRITE_SEG_OUT_DIR=/app/sprite_alpha_seg_pytorch/outputs/cat_match
volumes:
# 模型文件目录(需要手动放入 infer_spritesheet_hybrid.py + checkpoints/
- ./sprite_alpha_seg_pytorch:/opt/sprite_alpha_seg_pytorch:rw
# 模型与推理代码来自固定的上游提交,只有生成结果需要持久化。
- ./data/sprite-output:/app/sprite_alpha_seg_pytorch/outputs:rw
# AI 生成图片持久化(可选,不挂载则容器重启后丢失)
- ./data/assets-ai:/app/assets/ai:rw
networks:
@@ -66,6 +68,9 @@ services:
- "xiteng.site.component.cat-bodhi.navigation=new-tab"
- "xiteng.site.component.cat-bodhi.portal-link=embedded"
- "org.opencontainers.image.source=https://github.com/ziyuezhou1/CAT-BODHI"
- "org.opencontainers.image.revision=eaf9d27b4ebe3821da983106a78aa1c745532527"
networks:
homelab_net:
external: true