-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
64 lines (62 loc) · 2.47 KB
/
Copy pathdocker-compose.yml
File metadata and controls
64 lines (62 loc) · 2.47 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
# docker-compose.yml — NeuSky
#
# GPU-accelerated research container for NeuSky outdoor scene reconstruction.
#
# Quick reference:
# Build the image: docker compose build research
# Start a research shell: docker compose run research bash
# Train NeuSky: docker compose run research ns-train neusky --data /workspace/data/<scene>
#
# Environment variables (set in shell or .env file):
# DATA_PATH — path to datasets (default: ./data)
# OUTPUTS_PATH — path to training outputs (default: ./outputs)
# MODEL_STORAGE_PATH — path to pretrained models (default: ./model-storage)
# Two-level container design: this standalone compose mounts the neusky repo
# at /workspace so it is clone-alone-runnable (project name `neusky`). The phd
# umbrella compose is separate (project name `phd`), mounting the whole tree at
# /workspace/phd. The explicit name below keeps the two projects from colliding
# and makes wrong-cwd invocations visible (containers are named neusky-*).
name: neusky
services:
research:
build:
context: .
dockerfile: docker/Dockerfile
volumes:
# Mount the project root
- .:/workspace
# Mount external data, models, and outputs (override via .env or env vars)
- ${DATA_PATH:-./data}:/workspace/data
- ${MODEL_STORAGE_PATH:-./model-storage}:/workspace/model-storage
- ${OUTPUTS_PATH:-./outputs}:/workspace/outputs
# Mount entrypoint from host (avoids image rebuild for entrypoint changes)
- ./docker/entrypoint.sh:/entrypoint.sh:ro
# Mount wandb credentials
- ~/.netrc:/tmp/.netrc:ro
- ~/.cache/wandb:/tmp/home/.cache/wandb
user: "${UID:-1000}:${GID:-1000}"
working_dir: /workspace
ports:
- "7007:7007"
# Shared memory for PyTorch DataLoader multiprocessing
ipc: host
# Enable GPU access via the NVIDIA Container Toolkit
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
environment:
- CUDA_VISIBLE_DEVICES=${CUDA_VISIBLE_DEVICES:-0}
- PYTHONUNBUFFERED=1
- PYTHONPATH=/workspace
- HOME=/tmp/home
- NETRC=/tmp/.netrc
- MODEL_STORAGE_PATH=/workspace/model-storage
- DATA_PATH=/workspace/data
- OUTPUTS_PATH=/workspace/outputs
- PROJECT_ROOT=/workspace
# Legacy checkpoints contain numpy scalars that fail with PyTorch 2.6+ weights_only=True
- TORCH_FORCE_NO_WEIGHTS_ONLY_LOAD=1