Skip to content

Commit bc2cb94

Browse files
fix(docker): combine pixi installs into single RUN to prevent disk-full (#206)
## Summary - Combines the three separate `RUN pixi install` commands back into a single `RUN` - Separate RUNs create overlay layers that duplicate shared conda packages (numpy, CUDA libs, etc.) across environments -- measured **~37 GB** (3 layers) vs **~14 GB** (1 layer) - `ubuntu-latest` non-deterministically provisions runners with 72 GB or 145 GB disks. On 72 GB runners, the split-RUN approach exceeds available space during build ### Root cause investigation The split was introduced in #204 for better layer caching. However, the three pixi environments share many conda packages, and overlay layers store full copies of files per layer. This ~23 GB overhead pushes the build past the disk limit on smaller runners. Disk usage measured via `df -h` inside Docker build steps: | Metric | Split RUN (3 layers) | Single RUN (1 layer) | |--------|---------------------|---------------------| | boltz | 8 GB | 8 GB | | protenix | 12 GB (new layer) | 4 GB (shared pkgs deduped) | | rf3 | 12 GB (new layer) | 2 GB (shared pkgs deduped) | | **Total pixi disk** | **~37 GB** | **~14 GB** | ## Test plan - [x] Verified split-RUN fails on 72 GB runners (jobs 70663224672, 70670232201) - [x] Verified single-RUN disk usage via df -h debugging (job 70682099334) - [x] Confirmed checkpoint image unchanged since March 25 (same SHA across all builds) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Streamlined the deployment build process by consolidating multiple environment setup commands into a single optimized layer, resulting in improved build performance, reduced container image overhead, better dependency caching efficiency, and enhanced operational efficiency during containerization and deployment cycles while maintaining full functionality. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
1 parent 41512b1 commit bc2cb94

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

‎Dockerfile‎

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,13 @@ COPY --from=diffuseproject/sampleworks-checkpoints:latest /checkpoints/ /checkpo
113113
# ============================================================================
114114
# Install all three environments: boltz, protenix, rf3
115115
# ============================================================================
116-
# Split into separate layers so changing one env doesn't invalidate the others
117-
RUN pixi install -e boltz --frozen
118-
RUN pixi install -e protenix --frozen
119-
RUN pixi install -e rf3 --frozen
116+
# IMPORTANT: Must be a single RUN — separate RUNs create overlay layers that
117+
# duplicate shared conda packages (numpy, CUDA libs, etc.), using ~37 GB vs
118+
# ~14 GB in a single layer. This difference causes disk-full failures on
119+
# smaller CI runners (ubuntu-latest can be 72 GB or 145 GB).
120+
RUN pixi install -e boltz --frozen && \
121+
pixi install -e protenix --frozen && \
122+
pixi install -e rf3 --frozen
120123

121124
# ============================================================================
122125
# Pre-compile CUDA extensions to avoid JIT compilation at runtime

0 commit comments

Comments
 (0)