Fix critical permission issue preventing Sage Attention from building by using --user flag for all pip installations in the entrypoint script. Root Cause: - Entrypoint runs as non-root user (appuser) after privilege drop - Triton installation with --force-reinstall tried to upgrade system setuptools - System packages require root permissions to uninstall/upgrade - This caused "Permission denied" errors blocking Sage Attention build Changes Made: - Add --user flag to all pip install commands in install_triton_version() - Add --user flag to Sage Attention pip installation in build_sage_attention_mixed() - Use --no-build-isolation for Sage Attention to avoid setuptools conflicts - Maintain all existing fallback logic and error handling Result: - Triton installs to user site-packages (~/.local/lib/python3.12/site-packages) - Sage Attention builds and installs successfully - No system package conflicts or permission issues - ComfyUI can now detect and use Sage Attention with --use-sage-attention flag This resolves the error: "ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied" GPU Detection worked perfectly: - Detected 5x RTX 3060 GPUs correctly - PyTorch CUDA compatibility confirmed - Strategy: rtx30_40_optimized selected appropriately |
||
|---|---|---|
| .ci | ||
| .github | ||
| alembic_db | ||
| api_server | ||
| app | ||
| comfy | ||
| comfy_api | ||
| comfy_api_nodes | ||
| comfy_config | ||
| comfy_execution | ||
| comfy_extras | ||
| custom_nodes | ||
| input | ||
| middleware | ||
| models | ||
| output | ||
| script_examples | ||
| tests | ||
| tests-unit | ||
| utils | ||
| .gitattributes | ||
| .gitignore | ||
| alembic.ini | ||
| CODEOWNERS | ||
| comfyui_version.py | ||
| CONTRIBUTING.md | ||
| cuda_malloc.py | ||
| Dockerfile | ||
| entrypoint.sh | ||
| execution.py | ||
| extra_model_paths.yaml.example | ||
| folder_paths.py | ||
| hook_breaker_ac10a0.py | ||
| latent_preview.py | ||
| LICENSE | ||
| main.py | ||
| new_updater.py | ||
| node_helpers.py | ||
| nodes.py | ||
| protocol.py | ||
| pyproject.toml | ||
| pytest.ini | ||
| README.md | ||
| requirements.txt | ||
| server.py | ||
ComfyUI-Docker
An automated Repo for ComfyUI Docker image builds, optimized for NVIDIA GPUs.
About • Features • Getting Started • Usage • License
About
This repository automates the creation of Docker images for ComfyUI, a powerful and modular stable diffusion GUI and backend. It syncs with the upstream ComfyUI repository, builds a Docker image on new releases, and pushes it to GitHub Container Registry (GHCR).
I created this repo for myself as a simple way to stay up to date with the latest ComfyUI versions while having an easy-to-use Docker image. It's particularly suited for setups with NVIDIA GPUs, leveraging CUDA for accelerated performance.
Built With
- Docker
- GitHub Actions for automation
- PyTorch with CUDA support
- Based on Python 3.12 slim image
Features
- Automated Sync & Build: Daily checks for upstream releases, auto-merges changes, and builds/pushes Docker images.
- NVIDIA GPU Ready: Pre-configured with CUDA-enabled PyTorch for seamless GPU acceleration.
- Non-Root Runtime: Runs as a non-root user for better security.
- Pre-Installed Manager: Includes ComfyUI-Manager for easy node/extensions management.
- SageAttention 2.2 baked in: The image compiles SageAttention 2.2/2++ from the upstream repository during docker build, ensuring the latest kernels for modern NVIDIA GPUs are included by default.
- Auto-enabled at launch: ComfyUI is started with the
--use-sage-attentionflag so SageAttention is activated automatically on startup (no extra steps required).
Getting Started
Prerequisites
- Docker: Installed on your host (e.g., Docker Desktop or Engine).
- NVIDIA GPU: For GPU support (ensure NVIDIA drivers and CUDA are installed on the host).
- NVIDIA Container Toolkit: For GPU passthrough in Docker (install via the official guide).
Pulling the Image
The latest image is available on GHCR:
docker pull ghcr.io/clsferguson/comfyui-docker:latest
For a specific version (synced with upstream tags, starting at 0.3.57):
docker pull ghcr.io/clsferguson/comfyui-docker:vX.Y.Z
Docker Compose
For easier management, use this docker-compose.yml:
services:
comfyui:
image: ghcr.io/clsferguson/comfyui-docker:latest
container_name: ComfyUI
runtime: nvidia
restart: unless-stopped
ports:
- 8188:8188
environment:
- TZ=America/Edmonton
- PUID=1000
- GUID=1000
gpus: all
volumes:
- comfyui_data:/app/ComfyUI/user/default
- comfyui_nodes:/app/ComfyUI/custom_nodes
- /mnt/comfyui/models:/app/ComfyUI/models
- /mnt/comfyui/input:/app/ComfyUI/input
- /mnt/comfyui/output:/app/ComfyUI/output
Run with docker compose up -d.
Usage
Basic Usage
Access ComfyUI at http://localhost:8188 after starting the container using Docker Compose.
SageAttention
- SageAttention 2.2 is built into the image and enabled automatically on startup via
--use-sage-attention. - To verify, check the container logs on startup; ComfyUI will print a line indicating SageAttention is active.
Environment Variables
- Set via
.envfile or-eflags indocker composeordocker run.
License
Distributed under the MIT License (same as upstream ComfyUI). See LICENSE for more information.
Contact
- Creator: clsferguson - GitHub
- Project Link: https://github.com/clsferguson/ComfyUI-Docker
Built with ❤️ for easy AI workflows.