Rework Dockerfile for Tengu addon deployment (no bundled ComfyUI)
This commit is contained in:
+55
-43
@@ -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"]
|
|
||||||
|
|||||||
Reference in New Issue
Block a user