Skip to content

Commit 6d81e83

Browse files
committed
feat(ae): add docker build
1 parent 24d5acb commit 6d81e83

2 files changed

Lines changed: 58 additions & 9 deletions

File tree

docker-run.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,9 +237,11 @@ cleanup() {
237237
docker container prune -f
238238

239239
# Remove image
240-
if docker images | grep -q "$IMAGE_NAME"; then
240+
if docker images --format "{{.Repository}}:{{.Tag}}" | grep -q "^${IMAGE_NAME}$"; then
241241
docker rmi "$IMAGE_NAME"
242242
print_info "Removed image: $IMAGE_NAME"
243+
else
244+
print_warn "Image not found: $IMAGE_NAME"
243245
fi
244246

245247
print_info "Cleanup complete!"

docs/DOCKER_QUICK_REFERENCE.md

Lines changed: 55 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,56 @@
11
# Docker Quick Reference
22

3-
## Build and Run
3+
## Quick Start - Using Pre-built Image (Recommended)
4+
5+
The easiest way to use PSI is to pull the pre-built Docker image from GitHub Container Registry:
46

57
```bash
6-
# 1. Build image
7-
./docker-run.sh build
8+
# 1. Pull the pre-built image (no build needed!)
9+
./docker-run.sh pull
810

911
# 2. Run experiments (requires --data-path)
10-
./docker-run.sh run --data-path /mnt/large-disk/data
12+
./docker-run.sh run --data-path /mnt/large-disk/data --node-size 1000000
1113

1214
# 3. Full evaluation
1315
./docker-run.sh full --data-path /mnt/large-disk/data
1416
```
1517

18+
## Alternative - Build Locally
19+
20+
If you want to modify the code or can't access the pre-built image:
21+
22+
```bash
23+
# 1. Build image locally
24+
./docker-run.sh build
25+
26+
# 2. Run experiments
27+
./docker-run.sh run --data-path /mnt/large-disk/data
28+
```
29+
30+
## Manual Docker Commands
31+
32+
You can also use Docker directly without the helper script:
33+
34+
```bash
35+
# Pull the image
36+
docker pull ghcr.io/ucrparlay/spacetreelib:latest
37+
38+
# Run interactively
39+
docker run -it --rm \
40+
-v /ssd1:/ssd1 \
41+
-e DATA_PREFIX=/ssd1/ \
42+
-e NODE_SIZE=1000000 \
43+
ghcr.io/ucrparlay/spacetreelib:latest
44+
45+
# Run with custom settings
46+
docker run -it --rm \
47+
--cap-add=SYS_NICE \
48+
-v $(pwd)/script_ae/logs:/workspace/SpaceTreeLib/script_ae/logs \
49+
-e DATA_PREFIX=/data \
50+
-e NODE_SIZE=1000000000 \
51+
ghcr.io/ucrparlay/spacetreelib:latest
52+
```
53+
1654
## Parameters
1755

1856
| Option | Description | Default |
@@ -65,12 +103,15 @@ docker-compose down
65103
## Cleanup
66104

67105
```bash
68-
# Remove image
106+
# Remove container and image
69107
./docker-run.sh clean
70108

109+
# Or manually remove the image
110+
docker rmi ghcr.io/ucrparlay/spacetreelib:latest
111+
71112
# Remove generated data
72113
rm -rf /your/data/path/*
73-
rm -rf results/ logs/ plots/
114+
rm -rf script_ae/data/ script_ae/logs/ script_ae/plots/
74115
```
75116

76117
## Hardware Requirements
@@ -85,10 +126,16 @@ rm -rf results/ logs/ plots/
85126
**Fixed:** Container runs with `--cap-add=SYS_NICE`
86127

87128
**Issue:** Files not visible on host
88-
**Solution:** Check mounted directories (data/, logs/, plots/)
129+
**Solution:** Check mounted directories (script_ae/data/, script_ae/logs/, script_ae/plots/)
89130

90131
**Issue:** Out of memory
91132
**Solution:** Reduce `--node-size` or increase system RAM
92133

93134
**Issue:** Script changes not reflected
94-
**Solution:** Rebuild image with `./docker-run.sh build`
135+
**Solution:** Rebuild image with `./docker-run.sh build` or pull latest with `./docker-run.sh pull`
136+
137+
**Issue:** Cannot pull image (permission denied)
138+
**Solution:** The package may be private. Ask repository admin to make it public in GitHub package settings, or authenticate with:
139+
```bash
140+
echo YOUR_GITHUB_TOKEN | docker login ghcr.io -u YOUR_USERNAME --password-stdin
141+
```

0 commit comments

Comments
 (0)