Tag and push DockerHub images directly from build steps
Tag each per-arch image with both the ECR commit-pinned tag and the DockerHub tags (vllm/vllm-omni:$COMMIT-$arch and :nightly-$arch) and push them to DockerHub from the build step itself. The publish step now just creates and pushes the multi-arch manifests inline, so the push-nightly-builds.sh helper is no longer needed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
49afe9d31e
commit
afbb8af51a
2 files changed
+30
-43
No files matched your search
@@ -33,14 +33,22 @@ steps:
|
||||
DOCKER_BUILDKIT=1 docker build \
|
||||
--build-arg max_jobs=16 \
|
||||
--tag public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT-$(uname -m) \
|
||||
--tag vllm/vllm-omni:$BUILDKITE_COMMIT-$(uname -m) \
|
||||
--tag vllm/vllm-omni:nightly-$(uname -m) \
|
||||
--progress plain \
|
||||
-f docker/Dockerfile.cuda .
|
||||
# push to ECR (per-arch, commit-pinned) for staging
|
||||
- "docker push public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT-$(uname -m)"
|
||||
# re-tag to default image tag and push, just in case arm64 build fails
|
||||
- "docker tag public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT-$(uname -m) public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT"
|
||||
- "docker push public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT"
|
||||
# push to DockerHub (per-arch) so the multi-arch manifest can reference them
|
||||
- "docker push vllm/vllm-omni:$BUILDKITE_COMMIT-$(uname -m)"
|
||||
- "docker push vllm/vllm-omni:nightly-$(uname -m)"
|
||||
plugins:
|
||||
- docker-login#v3.0.0:
|
||||
username: vllmbot
|
||||
password-env: DOCKERHUB_TOKEN
|
||||
env:
|
||||
DOCKER_BUILDKIT: "1"
|
||||
DOCKERHUB_USERNAME: "vllmbot"
|
||||
|
||||
- label: "Build release image - aarch64"
|
||||
key: build-release-image-arm64
|
||||
@@ -53,31 +61,40 @@ steps:
|
||||
DOCKER_BUILDKIT=1 docker build \
|
||||
--build-arg max_jobs=16 \
|
||||
--tag public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT-$(uname -m) \
|
||||
--tag vllm/vllm-omni:$BUILDKITE_COMMIT-$(uname -m) \
|
||||
--tag vllm/vllm-omni:nightly-$(uname -m) \
|
||||
--progress plain \
|
||||
-f docker/Dockerfile.cuda .
|
||||
# push to ECR (per-arch, commit-pinned) for staging
|
||||
- "docker push public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT-$(uname -m)"
|
||||
# push to DockerHub (per-arch) so the multi-arch manifest can reference them
|
||||
- "docker push vllm/vllm-omni:$BUILDKITE_COMMIT-$(uname -m)"
|
||||
- "docker push vllm/vllm-omni:nightly-$(uname -m)"
|
||||
plugins:
|
||||
- docker-login#v3.0.0:
|
||||
username: vllmbot
|
||||
password-env: DOCKERHUB_TOKEN
|
||||
env:
|
||||
DOCKER_BUILDKIT: "1"
|
||||
DOCKERHUB_USERNAME: "vllmbot"
|
||||
|
||||
- label: "Create multi-arch manifest"
|
||||
key: create-multi-arch-manifest
|
||||
- label: "Publish multi-arch manifest to DockerHub"
|
||||
key: publish-multi-arch-dockerhub
|
||||
depends_on:
|
||||
- build-release-image-x86
|
||||
- build-release-image-arm64
|
||||
agents:
|
||||
queue: small_cpu_queue_release
|
||||
commands:
|
||||
# ECR multi-arch manifest (commit-pinned, useful for downstream tests)
|
||||
- "aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/q9t5s3a7"
|
||||
- "docker manifest create public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT-x86_64 public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT-aarch64 --amend"
|
||||
- "docker manifest push public.ecr.aws/q9t5s3a7/vllm-omni-release-repo:$BUILDKITE_COMMIT"
|
||||
|
||||
- label: "Publish nightly multi-arch image to DockerHub"
|
||||
depends_on:
|
||||
- create-multi-arch-manifest
|
||||
agents:
|
||||
queue: small_cpu_queue_release
|
||||
commands:
|
||||
- "bash .buildkite/scripts/push-nightly-builds.sh"
|
||||
# DockerHub multi-arch manifests (nightly + commit-pinned)
|
||||
- "docker manifest create vllm/vllm-omni:nightly vllm/vllm-omni:nightly-x86_64 vllm/vllm-omni:nightly-aarch64 --amend"
|
||||
- "docker manifest create vllm/vllm-omni:nightly-$BUILDKITE_COMMIT vllm/vllm-omni:nightly-x86_64 vllm/vllm-omni:nightly-aarch64 --amend"
|
||||
- "docker manifest push vllm/vllm-omni:nightly"
|
||||
- "docker manifest push vllm/vllm-omni:nightly-$BUILDKITE_COMMIT"
|
||||
plugins:
|
||||
- docker-login#v3.0.0:
|
||||
username: vllmbot
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
# Pull per-arch images from ECR (built earlier in the pipeline) and re-publish
|
||||
# them to Docker Hub under a nightly tag, then create and push a multi-arch
|
||||
# manifest pointing at both per-arch tags.
|
||||
|
||||
ORIG_TAG_NAME="$BUILDKITE_COMMIT"
|
||||
TAG_NAME="nightly"
|
||||
DOCKERHUB_REPO="vllm/vllm-omni"
|
||||
ECR_REPO="public.ecr.aws/q9t5s3a7/vllm-omni-release-repo"
|
||||
|
||||
echo "Pushing original tag $ORIG_TAG_NAME to new nightly tag name: $TAG_NAME"
|
||||
|
||||
# pull original arch-dependent images from AWS ECR Public
|
||||
aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/q9t5s3a7
|
||||
docker pull "$ECR_REPO:$ORIG_TAG_NAME-x86_64"
|
||||
docker pull "$ECR_REPO:$ORIG_TAG_NAME-aarch64"
|
||||
# tag arch-dependent images
|
||||
docker tag "$ECR_REPO:$ORIG_TAG_NAME-x86_64" "$DOCKERHUB_REPO:$TAG_NAME-x86_64"
|
||||
docker tag "$ECR_REPO:$ORIG_TAG_NAME-aarch64" "$DOCKERHUB_REPO:$TAG_NAME-aarch64"
|
||||
# push arch-dependent images to DockerHub
|
||||
docker push "$DOCKERHUB_REPO:$TAG_NAME-x86_64"
|
||||
docker push "$DOCKERHUB_REPO:$TAG_NAME-aarch64"
|
||||
# push arch-independent manifest to DockerHub
|
||||
docker manifest create "$DOCKERHUB_REPO:$TAG_NAME" "$DOCKERHUB_REPO:$TAG_NAME-x86_64" "$DOCKERHUB_REPO:$TAG_NAME-aarch64" --amend
|
||||
docker manifest create "$DOCKERHUB_REPO:$TAG_NAME-$BUILDKITE_COMMIT" "$DOCKERHUB_REPO:$TAG_NAME-x86_64" "$DOCKERHUB_REPO:$TAG_NAME-aarch64" --amend
|
||||
docker manifest push "$DOCKERHUB_REPO:$TAG_NAME"
|
||||
docker manifest push "$DOCKERHUB_REPO:$TAG_NAME-$BUILDKITE_COMMIT"
|
||||
Reference in new issue
Block a user