Skip to content

Fix docker recipe: use the maintained spiceai/spiceai:latest image - #555

Open
claudespice wants to merge 1 commit into
spiceai:trunkfrom
claudespice:claude/fix-docker-models-image
Open

Fix docker recipe: use the maintained spiceai/spiceai:latest image#555
claudespice wants to merge 1 commit into
spiceai:trunkfrom
claudespice:claude/fix-docker-models-image

Conversation

@claudespice

Copy link
Copy Markdown
Contributor

What the recipe said

docker/Dockerfile (and the mirrored cat Dockerfile output in the README) built from:

FROM spiceai/spiceai:latest-models

The recipe is titled "Running in Docker" and declares Works with v1.0+, so a reader reasonably expects latest-models to give them current Spice.

What the code does

The -models image variant is no longer published. The release matrix dropped it in v2.x:

Instead, the default v2.x build now compiles model support in (v2.1.1 line 244):

cargo build --profile ${{ env.RUST_PROFILE }} --features release,models -p spiced -p spice

So latest-models is frozen on v1.11.6. From the Docker Hub tag API:

tag last pushed digest
latest 2026-07-21 sha256:87076addee02a4d8bfdee99…
2.1.1 2026-07-21 sha256:87076addee02a4d8bfdee99…
latest-models 2026-05-07 sha256:fa2dc9322359a6825a186d6…
1.11.6-models 2026-05-07 sha256:fa2dc9322359a6825a186d6…

latest-models and 1.11.6-models are byte-identical, and were last pushed a month before v2.0.0 shipped (2026-06-05). No 2.0.0-models, 2.0.1-models, 2.1.0-models, or 2.1.1-models tag exists.

The net effect: anyone running this recipe silently gets a v1.11.6 runtime while believing they are on "latest", and that will never change as the tag is no longer updated.

What changed

  • docker/Dockerfile: FROM spiceai/spiceai:latest-modelsFROM spiceai/spiceai:latest
  • docker/README.md: mirrored the same change in the cat Dockerfile output block so the recipe stays self-consistent
  • Added a note explaining that model/embedding support — which this recipe needs for its local hf_minilm embedding (spicepod.yaml) — is in the default image from v2.0, and that v1.x used the separate -models variant
  • Corrected the version floor v1.0+v2.0+, since the plain latest tag only carries model support from v2.0

Notes for reviewers

  • Not run end-to-end. Docker was unavailable in the environment where this was audited, so this is verified from the release workflow and the Docker Hub tag digests rather than a live build.
  • The README's sample log output and spice status table are still v1.x-era (Initialized results cache;, an opentelemetry 127.0.0.1:50052 row). Those were consistent with the v1.11.6 image the recipe was pinned to, and become stale with this change. I deliberately left them alone rather than hand-writing v2.x output I could not actually observe — happy to follow up with real output if someone can run it, or if you would prefer I take the best-effort edit here.
  • The version floor bump is the conservative reading. If you would rather keep v1.0+ and document both tags, say so and I will adjust.

Verified against spiceai/spiceai at tag v2.1.1 (current stable) and v1.11.6.

The recipe built from spiceai/spiceai:latest-models. That tag has not been
republished since Spice v1.11.6 - its digest is identical to 1.11.6-models
(sha256:fa2dc932..., last pushed 2026-05-07) while :latest now resolves to
v2.1.1 (sha256:87076add...). No 2.x release publishes a -models variant.

From v2.0 the default release build compiles with the models feature, so
model and embedding support (needed here for the local hf_minilm embedding)
is in the plain image. Point the Dockerfile at :latest, mirror the change in
the README Dockerfile block, note the v1.x -models variant, and correct the
version floor to v2.0+.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant