Skip to content

Commit 84d7479

Browse files
Add wanda ray image builds for Docker Hub
This adds wanda-based builds for ray Docker Hub images. Changes: - Add ray-image-cpu/cuda.wanda.yaml for ray images - Add ray-extra-image-cpu/cuda.wanda.yaml for extra dependencies - Add ray-llm-image-cuda.wanda.yaml and ray-llm-extra variant - Add push_ray_image.py for pushing to Docker Hub via crane - Update build.rayci.yml with wanda image build and push steps Topic: ray-image Relative: ray-wheel Labels: draft Signed-off-by: andrew <andrew@anyscale.com>
1 parent e93a821 commit 84d7479

11 files changed

+991
-46
lines changed

.buildkite/build.rayci.yml

Lines changed: 270 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -88,89 +88,311 @@ steps:
8888
depends_on: manylinux-x86_64
8989
job_env: manylinux-x86_64
9090

91-
- label: ":tapioca: build: ray py{{matrix}} docker (x86_64)"
92-
key: ray_images
91+
- name: ray-image-cpu-build
92+
label: "wanda: ray py{{matrix}} cpu (x86_64)"
93+
wanda: ci/docker/ray-image-cpu.wanda.yaml
94+
matrix:
95+
- "3.10"
96+
- "3.11"
97+
- "3.12"
98+
env:
99+
PYTHON_VERSION: "{{matrix}}"
100+
ARCH_SUFFIX: ""
93101
tags:
94102
- python_dependencies
95103
- docker
96104
- oss
97-
instance_type: medium
98-
commands:
99-
- bazel run //ci/ray_ci:build_in_docker -- docker --python-version {{matrix}}
100-
--platform cu11.7.1-cudnn8 --platform cu11.8.0-cudnn8
101-
--platform cu12.1.1-cudnn8 --platform cu12.3.2-cudnn9
102-
--platform cu12.4.1-cudnn --platform cu12.5.1-cudnn
103-
--platform cu12.6.3-cudnn --platform cu12.8.1-cudnn
104-
--platform cu12.9.1-cudnn
105-
--platform cpu
106-
--image-type ray --upload
107105
depends_on:
108-
- manylinux-x86_64
109-
- forge
110-
- raycudabase
106+
- ray-wheel-build
111107
- raycpubase
108+
109+
# Push ray CPU images to Docker Hub
110+
- label: ":docker: push: ray py{{matrix}} cpu (x86_64)"
111+
key: ray_images_cpu_push
112+
instance_type: small
113+
commands:
114+
- bazel run //.buildkite:copy_files -- --destination docker_login
115+
- bazel run //ci/ray_ci/automation:push_ray_image --
116+
--python-version {{matrix}}
117+
--platform cpu
118+
--image-type ray
119+
--upload
112120
matrix:
113121
- "3.10"
114122
- "3.11"
115123
- "3.12"
124+
depends_on:
125+
- ray-image-cpu-build
126+
tags:
127+
- python_dependencies
128+
- docker
129+
- skip-on-premerge
130+
- oss
116131

117-
- label: ":tapioca: build: ray-extra py{{matrix}} docker (x86_64)"
118-
key: ray_extra_images
132+
- name: ray-image-cuda-build
133+
label: "wanda: ray py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
134+
wanda: ci/docker/ray-image-cuda.wanda.yaml
135+
matrix:
136+
setup:
137+
python:
138+
- "3.10"
139+
- "3.11"
140+
- "3.12"
141+
cuda:
142+
- "11.7.1-cudnn8"
143+
- "11.8.0-cudnn8"
144+
- "12.1.1-cudnn8"
145+
- "12.3.2-cudnn9"
146+
- "12.4.1-cudnn"
147+
- "12.5.1-cudnn"
148+
- "12.6.3-cudnn"
149+
- "12.8.1-cudnn"
150+
- "12.9.1-cudnn"
151+
env:
152+
PYTHON_VERSION: "{{matrix.python}}"
153+
CUDA_VERSION: "{{matrix.cuda}}"
154+
ARCH_SUFFIX: ""
119155
tags:
120156
- python_dependencies
121157
- docker
122158
- oss
123-
instance_type: medium
159+
depends_on:
160+
- ray-wheel-build
161+
- raycudabase
162+
163+
# Push ray CUDA images to Docker Hub
164+
- label: ":docker: push: ray py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
165+
key: ray_images_cuda_push
166+
instance_type: small
124167
commands:
125-
- bazel run //ci/ray_ci:build_in_docker -- docker --python-version {{matrix}}
126-
--platform cu11.7.1-cudnn8 --platform cu11.8.0-cudnn8
127-
--platform cu12.1.1-cudnn8 --platform cu12.3.2-cudnn9
128-
--platform cu12.4.1-cudnn --platform cu12.5.1-cudnn
129-
--platform cu12.6.3-cudnn --platform cu12.8.1-cudnn
130-
--platform cu12.9.1-cudnn
131-
--platform cpu
132-
--image-type ray-extra --upload
168+
- bazel run //.buildkite:copy_files -- --destination docker_login
169+
- bazel run //ci/ray_ci/automation:push_ray_image --
170+
--python-version {{matrix.python}}
171+
--platform cu{{matrix.cuda}}
172+
--image-type ray
173+
--upload
174+
matrix:
175+
setup:
176+
python:
177+
- "3.10"
178+
- "3.11"
179+
- "3.12"
180+
cuda:
181+
- "11.7.1-cudnn8"
182+
- "11.8.0-cudnn8"
183+
- "12.1.1-cudnn8"
184+
- "12.3.2-cudnn9"
185+
- "12.4.1-cudnn"
186+
- "12.5.1-cudnn"
187+
- "12.6.3-cudnn"
188+
- "12.8.1-cudnn"
189+
- "12.9.1-cudnn"
133190
depends_on:
134-
- manylinux-x86_64
135-
- forge
136-
- raycpubaseextra
137-
- raycudabaseextra
191+
- ray-image-cuda-build
192+
tags:
193+
- python_dependencies
194+
- docker
195+
- skip-on-premerge
196+
- oss
197+
198+
- name: ray-extra-image-cpu-build
199+
label: "wanda: ray-extra py{{matrix}} cpu (x86_64)"
200+
wanda: ci/docker/ray-extra-image-cpu.wanda.yaml
138201
matrix:
139202
- "3.10"
140203
- "3.11"
141204
- "3.12"
205+
env:
206+
PYTHON_VERSION: "{{matrix}}"
207+
ARCH_SUFFIX: ""
208+
tags:
209+
- python_dependencies
210+
- docker
211+
- oss
212+
depends_on:
213+
- ray-wheel-build
214+
- raycpubaseextra
142215

143-
- label: ":tapioca: build: ray-llm py{{matrix}} docker (x86_64)"
216+
- name: ray-extra-image-cuda-build
217+
label: "wanda: ray-extra py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
218+
wanda: ci/docker/ray-extra-image-cuda.wanda.yaml
219+
matrix:
220+
setup:
221+
python:
222+
- "3.10"
223+
- "3.11"
224+
- "3.12"
225+
cuda:
226+
- "11.7.1-cudnn8"
227+
- "11.8.0-cudnn8"
228+
- "12.1.1-cudnn8"
229+
- "12.3.2-cudnn9"
230+
- "12.4.1-cudnn"
231+
- "12.5.1-cudnn"
232+
- "12.6.3-cudnn"
233+
- "12.8.1-cudnn"
234+
- "12.9.1-cudnn"
235+
env:
236+
PYTHON_VERSION: "{{matrix.python}}"
237+
CUDA_VERSION: "{{matrix.cuda}}"
238+
ARCH_SUFFIX: ""
144239
tags:
145240
- python_dependencies
146241
- docker
147242
- oss
148-
instance_type: medium
149-
commands:
150-
- bazel run //ci/ray_ci:build_in_docker -- docker --python-version {{matrix}}
151-
--platform cu12.8.1-cudnn --image-type ray-llm --upload
152243
depends_on:
153-
- manylinux-x86_64
154-
- forge
244+
- ray-wheel-build
245+
- raycudabaseextra
246+
247+
- name: ray-llm-image-cuda-build
248+
label: "wanda: ray-llm py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
249+
wanda: ci/docker/ray-llm-image-cuda.wanda.yaml
250+
matrix:
251+
setup:
252+
python:
253+
- "3.11"
254+
cuda:
255+
- "12.8.1-cudnn"
256+
env:
257+
PYTHON_VERSION: "{{matrix.python}}"
258+
CUDA_VERSION: "{{matrix.cuda}}"
259+
ARCH_SUFFIX: ""
260+
tags:
261+
- python_dependencies
262+
- docker
263+
- oss
264+
depends_on:
265+
- ray-wheel-build
155266
- ray-llmbase
267+
268+
- name: ray-llm-extra-image-cuda-build
269+
label: "wanda: ray-llm-extra py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
270+
wanda: ci/docker/ray-llm-extra-image-cuda.wanda.yaml
271+
matrix:
272+
setup:
273+
python:
274+
- "3.11"
275+
cuda:
276+
- "12.8.1-cudnn"
277+
env:
278+
PYTHON_VERSION: "{{matrix.python}}"
279+
CUDA_VERSION: "{{matrix.cuda}}"
280+
ARCH_SUFFIX: ""
281+
tags:
282+
- python_dependencies
283+
- docker
284+
- oss
285+
depends_on:
286+
- ray-wheel-build
287+
- ray-llmbaseextra
288+
289+
# Push ray-extra CPU images to Docker Hub (goes to rayproject/ray)
290+
- label: ":docker: push: ray-extra py{{matrix}} cpu (x86_64)"
291+
key: ray_extra_images_cpu_push
292+
instance_type: small
293+
commands:
294+
- bazel run //.buildkite:copy_files -- --destination docker_login
295+
- bazel run //ci/ray_ci/automation:push_ray_image --
296+
--python-version {{matrix}}
297+
--platform cpu
298+
--image-type ray-extra
299+
--upload
156300
matrix:
301+
- "3.10"
157302
- "3.11"
303+
- "3.12"
304+
depends_on:
305+
- ray-extra-image-cpu-build
306+
tags:
307+
- python_dependencies
308+
- docker
309+
- skip-on-premerge
310+
- oss
158311

159-
- label: ":tapioca: build: ray-llm-extra py{{matrix}} docker (x86_64)"
312+
# Push ray-extra CUDA images to Docker Hub (goes to rayproject/ray)
313+
- label: ":docker: push: ray-extra py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
314+
key: ray_extra_images_cuda_push
315+
instance_type: small
316+
commands:
317+
- bazel run //.buildkite:copy_files -- --destination docker_login
318+
- bazel run //ci/ray_ci/automation:push_ray_image --
319+
--python-version {{matrix.python}}
320+
--platform cu{{matrix.cuda}}
321+
--image-type ray-extra
322+
--upload
323+
matrix:
324+
setup:
325+
python:
326+
- "3.10"
327+
- "3.11"
328+
- "3.12"
329+
cuda:
330+
- "11.7.1-cudnn8"
331+
- "11.8.0-cudnn8"
332+
- "12.1.1-cudnn8"
333+
- "12.3.2-cudnn9"
334+
- "12.4.1-cudnn"
335+
- "12.5.1-cudnn"
336+
- "12.6.3-cudnn"
337+
- "12.8.1-cudnn"
338+
- "12.9.1-cudnn"
339+
depends_on:
340+
- ray-extra-image-cuda-build
160341
tags:
161342
- python_dependencies
162343
- docker
344+
- skip-on-premerge
163345
- oss
164-
instance_type: medium
346+
347+
# Push ray-llm CUDA images to Docker Hub (goes to rayproject/ray-llm)
348+
- label: ":docker: push: ray-llm py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
349+
key: ray_llm_images_cuda_push
350+
instance_type: small
165351
commands:
166-
- bazel run //ci/ray_ci:build_in_docker -- docker --python-version {{matrix}}
167-
--platform cu12.8.1-cudnn --image-type ray-llm-extra --upload
352+
- bazel run //.buildkite:copy_files -- --destination docker_login
353+
- bazel run //ci/ray_ci/automation:push_ray_image --
354+
--python-version {{matrix.python}}
355+
--platform cu{{matrix.cuda}}
356+
--image-type ray-llm
357+
--upload
358+
matrix:
359+
setup:
360+
python:
361+
- "3.11"
362+
cuda:
363+
- "12.8.1-cudnn"
168364
depends_on:
169-
- manylinux-x86_64
170-
- forge
171-
- ray-llmbaseextra
365+
- ray-llm-image-cuda-build
366+
tags:
367+
- python_dependencies
368+
- docker
369+
- skip-on-premerge
370+
- oss
371+
372+
# Push ray-llm-extra CUDA images to Docker Hub (goes to rayproject/ray-llm)
373+
- label: ":docker: push: ray-llm-extra py{{matrix.python}} cu{{matrix.cuda}} (x86_64)"
374+
key: ray_llm_extra_images_cuda_push
375+
instance_type: small
376+
commands:
377+
- bazel run //.buildkite:copy_files -- --destination docker_login
378+
- bazel run //ci/ray_ci/automation:push_ray_image --
379+
--python-version {{matrix.python}}
380+
--platform cu{{matrix.cuda}}
381+
--image-type ray-llm-extra
382+
--upload
172383
matrix:
173-
- "3.11"
384+
setup:
385+
python:
386+
- "3.11"
387+
cuda:
388+
- "12.8.1-cudnn"
389+
depends_on:
390+
- ray-llm-extra-image-cuda-build
391+
tags:
392+
- python_dependencies
393+
- docker
394+
- skip-on-premerge
395+
- oss
174396

175397
- label: ":tapioca: smoke test build-docker.sh"
176398
tags:
@@ -187,6 +409,7 @@ steps:
187409
depends_on:
188410
- forge
189411

412+
# Generate nightly indexes after images are pushed
190413
- label: ":tapioca: generate nightly indexes"
191414
instance_type: small
192415
tags:
@@ -197,6 +420,7 @@ steps:
197420
- bazel run .buildkite:copy_files -- --destination docker_login
198421
- bazel run //ci/ray_ci/automation:generate_index -- --prefix nightly
199422
depends_on:
200-
- ray_images
423+
- ray_images_cpu_push
424+
- ray_images_cuda_push
201425
- ray_images_aarch64
202426
- forge
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Ray Extra CPU Image
2+
# Installs ray wheel into the CPU base-extra image
3+
#
4+
# This produces the final rayproject/ray image with -extra tag for CPU-only deployments.
5+
# The base-extra image includes additional Python dependencies beyond base.
6+
#
7+
name: "ray-extra-py$PYTHON_VERSION-cpu$ARCH_SUFFIX"
8+
disable_caching: true
9+
froms:
10+
- "cr.ray.io/rayproject/ray-py$PYTHON_VERSION-cpu-base-extra$ARCH_SUFFIX" # CPU base-extra image
11+
- "cr.ray.io/rayproject/ray-wheel-py$PYTHON_VERSION$ARCH_SUFFIX" # Ray wheel
12+
dockerfile: ci/docker/ray-image.Dockerfile
13+
srcs:
14+
- python/requirements_compiled.txt
15+
build_args:
16+
- PYTHON_VERSION
17+
- ARCH_SUFFIX
18+
- BASE_IMAGE=cr.ray.io/rayproject/ray-py$PYTHON_VERSION-cpu-base-extra$ARCH_SUFFIX
19+
- RAY_WHEEL_IMAGE=cr.ray.io/rayproject/ray-wheel-py$PYTHON_VERSION$ARCH_SUFFIX

0 commit comments

Comments
 (0)