Build Tools
Docker image build tooling for Ray Data benchmarks.
build_incremental_ray.sh
Builds Ray docker images with incremental caching for fast iteration. Supports full builds, base-extra (profiling tools), ray-ml (ML frameworks), and python-only overlay builds.
Quick reference
# Full build (first time or after C++ changes)
./build_incremental_ray.sh --tag v1
# Full build + profiling tools (nsys, perf, gdb, cloud SDKs)
./build_incremental_ray.sh --tag v1-extra --extra
# Full build + profiling tools + ML frameworks
./build_incremental_ray.sh --tag v1-extra-ml --extra --ml
# Python-only overlay (after changing only python/ray/*.py files)
./build_incremental_ray.sh --tag v2 --python-only --base-image <previous-ecr-uri>
How it works
- Builds a manylinux wheel with a persistent Bazel disk cache
- Builds
base-deps(Python dependencies), cached in ECR by lock file hash - Builds the
rayimage on top of base-deps - (with
--extra) Buildsbase-extraon top of ray, cached in ECR by Dockerfile + lock file hash - (with
--ml) Buildsray-mlon top, cached in ECR by requirements hash - Pushes the final image to ECR
Must be run from a ray or rayturbo source directory. Run ./build_incremental_ray.sh --help
for all options.
Prerequisites
- AWS credentials configured (
aws sts get-caller-identitymust succeed) - Docker installed and running
- ECR access to
830883877497.dkr.ecr.us-west-2.amazonaws.com/anyscale/ray