Rework Dockerfile for Tengu addon deployment (no bundled ComfyUI)

This commit is contained in:
aladac
2026-04-01 14:29:06 +02:00
parent 66f60989e4
commit 611f92a868
2 changed files with 59 additions and 44 deletions
+55 -43
View File
@@ -1,54 +1,66 @@
# Tensors + ComfyUI for RTX 5090 / CUDA 12.8 # Tensors API for Tengu PaaS
# tensors API exposed, ComfyUI internal only # ComfyUI runs as a separate container via the img addon
FROM madiator2011/better-comfyui:slim-5090 FROM python:3.12-slim
WORKDIR /workspace RUN apt-get update && apt-get install -y --no-install-recommends \
curl ca-certificates git \
&& rm -rf /var/lib/apt/lists/*
# ComfyUI is pre-installed in base image at /workspace/ComfyUI RUN pip install --no-cache-dir uv
# Install ComfyUI Manager
RUN cd /workspace/ComfyUI/custom_nodes && \ WORKDIR /app
git clone https://github.com/ltdrdata/ComfyUI-Manager.git && \
cd ComfyUI-Manager && \
pip install -r requirements.txt
# Install tensors with server dependencies # Install tensors with server dependencies
COPY . /tmp/tensors COPY pyproject.toml uv.lock README.md ./
RUN pip install /tmp/tensors'[server]' && \ COPY tensors/ ./tensors/
rm -rf /tmp/tensors RUN uv pip install --system '.[server]'
# Configure tensors # Entrypoint script
RUN mkdir -p /root/.config/tensors && \ COPY <<'EOF' /app/start.sh
cat > /root/.config/tensors/config.toml << 'EOF' #!/bin/sh
set -e
DATA="${DATA_DIR:-/data}"
# Create directory structure for model storage
mkdir -p "$DATA/models/checkpoints"
mkdir -p "$DATA/models/loras"
mkdir -p "$DATA/models/embeddings"
mkdir -p "$DATA/models/vae"
mkdir -p "$DATA/models/controlnet"
mkdir -p "$DATA/models/upscalers"
mkdir -p "$DATA/output"
mkdir -p "$DATA/gallery"
mkdir -p "$DATA/db"
# Write tensors config pointing to addon storage paths
mkdir -p /app/config/tensors
cat > /app/config/tensors/config.toml <<CONF
[paths] [paths]
models_dir = "/workspace/ComfyUI/models" models_dir = "$DATA/models"
checkpoints = "/workspace/ComfyUI/models/checkpoints" checkpoints = "$DATA/models/checkpoints"
loras = "/workspace/ComfyUI/models/loras" loras = "$DATA/models/loras"
vae = "/workspace/ComfyUI/models/vae" vae = "$DATA/models/vae"
embeddings = "/workspace/ComfyUI/models/embeddings" embeddings = "$DATA/models/embeddings"
controlnet = "$DATA/models/controlnet"
upscalers = "$DATA/models/upscalers"
[comfyui] [comfyui]
url = "http://127.0.0.1:8188" url = "${COMFYUI_URL:-http://127.0.0.1:8188}"
CONF
export XDG_CONFIG_HOME=/app/config
export XDG_DATA_HOME="$DATA"
echo "tensors starting"
echo " DATA_DIR=$DATA"
echo " COMFYUI_URL=${COMFYUI_URL:-not set}"
echo " DB=$DATA/db/models.db"
exec tsr serve --host 0.0.0.0 --port 5000
EOF EOF
RUN chmod +x /app/start.sh
# Startup script: ComfyUI internal + tensors API exposed EXPOSE 5000
RUN cat > /workspace/start.sh << 'EOF'
#!/bin/bash
# Start ComfyUI in background (internal only, localhost)
python /workspace/ComfyUI/main.py --listen 127.0.0.1 --port 8188 &
# Wait for ComfyUI to be ready CMD ["/app/start.sh"]
echo "Waiting for ComfyUI..."
until curl -s http://127.0.0.1:8188/system_stats > /dev/null 2>&1; do
sleep 1
done
echo "ComfyUI ready"
# Start tensors API (exposed)
exec tsr serve --host 0.0.0.0 --port 51200
EOF
RUN chmod +x /workspace/start.sh
# Only expose tensors API
EXPOSE 51200
CMD ["/workspace/start.sh"]
+4 -1
View File
@@ -1,4 +1,7 @@
runtime: python runtime: python
dockerfile: Dockerfile dockerfile: Dockerfile
cmd: tsr serve --host 0.0.0.0 --port 5000 --sd-server http://172.17.0.1:1234
port: 5000 port: 5000
cmd: /app/start.sh
addons:
- img
- xfs-xl