forked from MrNeRF/LichtFeld-Studio
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.consolidated.yml
More file actions
102 lines (92 loc) · 3.04 KB
/
docker-compose.consolidated.yml
File metadata and controls
102 lines (92 loc) · 3.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
services:
gaussian-toolkit:
build:
context: .
dockerfile: Dockerfile.consolidated
image: gaussian-toolkit:latest
container_name: gaussian-toolkit
hostname: gaussian-toolkit
runtime: nvidia
env_file:
- .env
environment:
- NVIDIA_VISIBLE_DEVICES=all
- NVIDIA_DRIVER_CAPABILITIES=compute,utility,graphics
- CUDA_HOME=/usr/local/cuda
- DISPLAY=:1
- HF_TOKEN=${HF_TOKEN}
- HF_HOME=/opt/hf-cache
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
- SAM3_BPE_PATH=/opt/sam3-repo/sam3/assets/bpe_simple_vocab_16e6.txt.gz
- MILO_CONTAINER=milo
deploy:
resources:
reservations:
devices:
- driver: nvidia
device_ids: ['0']
capabilities: [gpu, compute, utility, graphics]
limits:
memory: 200g
shm_size: "64g"
ports:
- "7860:7860" # Web interface (Flask)
- "7681:7681" # Web terminal (ttyd)
- "8188:8188" # ComfyUI
- "45677:45677" # LichtFeld Studio
- "5901:5901" # VNC
volumes:
# Model staging — pre-populate this with downloaded models
- /home/john/comfyui-models-staging:/models-staging:ro
# Persistent output data (web UI writes to /data/output)
- ./output:/data/output
# Host-compiled LichtFeld binary (bind-mount from host build)
- /home/john/githubs/gaussian/LichtFeld-Studio/build:/opt/gaussian-toolkit/build:ro
# Host CUDA libs (if container CUDA version differs from host)
- /opt/cuda/lib64:/opt/host-cuda-libs:ro
# Persistent model cache (survives rebuilds)
- models-data:/opt/models
# HuggingFace cache (shared path via HF_HOME env var)
- hf-cache:/opt/hf-cache
# Claude Code OAuth session (survives container recreation)
- claude-session:/home/ubuntu/.claude
# Live pipeline source (override baked-in code for dev iteration)
- ./src/pipeline:/opt/gaussian-toolkit/src/pipeline
- ./src/web:/opt/gaussian-toolkit/src/web
- ./CLAUDE_CONTAINER.md:/opt/gaussian-toolkit/CLAUDE.md:ro
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:7860/health"]
interval: 30s
timeout: 10s
retries: 5
start_period: 120s
# MILo sidecar — high-quality mesh extraction (Ubuntu 22.04 + CUDA 11.8)
# Build: docker compose build milo
# The main container calls MILo via: docker exec milo python3 train.py ...
milo:
build:
context: .
dockerfile: docker/Dockerfile.milo
image: gaussian-toolkit-milo:latest
container_name: milo
runtime: nvidia
deploy:
resources:
reservations:
devices:
- driver: nvidia
device_ids: ['1']
capabilities: [gpu, compute, utility]
volumes:
- ./output:/data/output
- hf-cache:/opt/hf-cache
entrypoint: ["sleep", "infinity"]
restart: unless-stopped
volumes:
models-data:
driver: local
hf-cache:
driver: local
claude-session:
driver: local