docker: pin xformers explicitly, forward the llama tag to the Studio build
The amd64 base install named the cu128-ampere-torch2110 extra, which does not exist on main yet (the CUDA extras stop at torch2100): pip/uv only warn on an unknown extra, so plain unsloth installed without xformers and the required- package check failed the build. Both arches now take the plain huggingface extra and amd64 pins xformers==0.0.35 explicitly in the same resolve (it requires torch>=2.10 without an exact pin, pairing with the baked 2.11.0; verified on PyPI, x86_64 wheels only, matching the arm64 exclusion). This decouples the base image from the pending extras PR. The Studio build now receives the SAME llama.cpp tag the base image baked: Dockerfile.studio grows a LLAMA_PREBUILT_TAG arg exported as UNSLOTH_LLAMA_TAG to install.sh (setup.sh honours it; the "latest" default is byte-identical to setup.sh's own default for local builds), and the publish workflow forwards the prepare job's resolved tag in the studio build-args. Without the pin a dispatch override or an upstream release landing between the two jobs let the no-GPU Studio build re-resolve "latest" and replace the pinned CUDA bundle. The Studio venv-match assertion also needs installer support for torch 2.11 on the CUDA path; that lands in a separate installer PR and is now declared as a merge-order dependency in the PR description (the publish workflow only runs on main pushes, so nothing builds before both are merged).
This commit is contained in:
parent
1788d3d203
commit
8fa588db2c
3 changed files with 26 additions and 19 deletions
10
.github/workflows/docker-publish.yml
vendored
10
.github/workflows/docker-publish.yml
vendored
|
|
@ -438,14 +438,16 @@ jobs:
|
|||
cache-from: type=gha,scope=studio-${{ matrix.platform }}
|
||||
cache-to: type=gha,scope=studio-${{ matrix.platform }},mode=min
|
||||
outputs: type=image,name=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=true
|
||||
# Both refs are the SAME resolved shas the base build baked (prepare
|
||||
# job), so the Studio tree + its zoo overlay match the base venv even
|
||||
# if the branch moved mid-run. (Prose stays out of build-args --
|
||||
# forwarded lines must be KEY=VALUE only.)
|
||||
# All three pins are the SAME resolved values the base build baked
|
||||
# (prepare job), so the Studio tree, its zoo overlay AND its llama.cpp
|
||||
# bundle match the base image even if a branch or upstream release
|
||||
# moved mid-run. (Prose stays out of build-args -- forwarded lines
|
||||
# must be KEY=VALUE only.)
|
||||
build-args: |
|
||||
BASE_IMAGE=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}@${{ needs.merge.outputs.digest }}
|
||||
UNSLOTH_STUDIO_REF=${{ needs.prepare.outputs.unsloth_ref }}
|
||||
UNSLOTH_STUDIO_ZOO_REF=${{ needs.prepare.outputs.zoo_ref }}
|
||||
LLAMA_PREBUILT_TAG=${{ needs.prepare.outputs.llama_tag }}
|
||||
|
||||
- name: Export digest
|
||||
run: |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue