pbs-projects/Tech/Projects/instantmesh-docker.md

94 lines
2.7 KiB
Markdown

---
project: instantmesh-docker
type: project-plan
status: active
path: Tech/Projects
tags:
- homelab
- docker
- ai-ml
- gpu
created: 2026-04-27
updated: 2026-04-27
---
# InstantMesh Docker Deployment
Self-hosted deployment of [TencentARC/InstantMesh](
https://github.com/TencentARC/InstantMesh) on the Manjaro tower (RTX 3080)
for single-image to 3D mesh generation. Gradio UI exposed on port 43839.
## Goals
- Run InstantMesh locally via Docker Compose on the Manjaro tower
- Persist downloaded model weights outside the container (re-pulls are slow)
- Build from official repo source, patch the known `onnxruntime` issue from
upstream
## Stack
- **Host:** Manjaro tower (i7 / 128GB / RTX 3080, 10GB VRAM)
- **Runtime:** Docker + NVIDIA Container Toolkit
- **Base image:** Built from `TencentARC/InstantMesh/docker/Dockerfile`
- **UI:** Gradio on `:43839`
- **Model variant:** `instant-mesh-large` (default, fits in 10GB VRAM)
## Known issue
Upstream Dockerfile has a missing dep — container fails at runtime with
`ModuleNotFoundError: No module named 'onnxruntime'` (issue #175). Fix is
to add `onnxruntime` to the pip install step in the Dockerfile before
building, or install it post-build.
## Setup steps
- [ ] Verify NVIDIA Container Toolkit is functional: `docker run --rm
--gpus all nvidia/cuda:12.1.0-base-ubuntu22.04 nvidia-smi`
- [ ] Clone repo: `git clone https://github.com/TencentARC/InstantMesh.git
~/projects/instantmesh`
- [ ] Patch Dockerfile to add `onnxruntime` to pip install
- [ ] Build image: `docker compose build`
- [ ] Create model dir: `mkdir -p ~/instantmesh-models`
- [ ] First run: `docker compose up` — model weights download on first
launch (~10GB)
- [ ] Verify Gradio UI at `http://localhost:43839`
- [ ] Test inference with sample image
## docker-compose.yml
yaml
services:
instantmesh:
build:
context: ./InstantMesh
dockerfile: docker/Dockerfile
image: instantmesh:local
container_name: instantmesh
ports:
- "43839:43839"
volumes:
- ~/instantmesh-models:/workspace/instantmesh/models
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
restart: unless-stopped
## Open questions
- [ ] Reverse proxy through Traefik on `*.lab.herbylab.dev`, or keep
local-only?
- [ ] Worth wiring into OpenClaw later as a callable 3D-gen tool?
## References
- Repo: https://github.com/TencentARC/InstantMesh
- Docker dir: https://github.com/TencentARC/InstantMesh/tree/main/docker
- onnxruntime issue: https://github.com/TencentARC/InstantMesh/issues/175
- Community fix PR: https://github.com/TencentARC/InstantMesh/pull/181
...sent from Jenny & Travis