fix: integration test openjdk:alpine base image no longer resolvable - #48
Merged
Merged
Conversation
The openjdk Docker Hub repository was deprecated and the plain "alpine" tag has since been removed, so program_integration_test.clj's "containerizes the application" test (and everything downstream of it in the same deftest) failed with "manifest unknown" trying to pull registry-1.docker.io/library/openjdk:alpine. Swapped in openjdk:8u212-jre-alpine, which still exists and, unlike every other currently-maintained JRE/alpine image checked (eclipse-temurin, amazoncorretto, alpine itself), still serves a Docker v2 manifest list rather than an OCI image index — jib-core 0.13.0 (this repo's pinned version) doesn't understand the OCI index media type and fails with "Unknown mediaType: application/vnd.oci.image.index.v1+json" against any image published in that newer format. Verified locally with a `registry:2` container on port 5000 (matching the GitHub Actions integration-test job's registry service): all 12 assertions in program_integration_test.clj now pass. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Updates the integration test to use a resolvable OpenJDK Alpine tag compatible with the pinned Jib version.
Changes:
- Replaces
openjdk:alpinewithopenjdk:8u212-jre-alpine. - Updates expected manifest assertions.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
alan-ghelardi
approved these changes
Sep 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
program_integration_test.clj'svessel-test(12 assertions in onedeftest) fails onmaster, unrelated to any application-code change: it hardcodes--repository openjdk --tag alpineas a base image, and that tag no longer resolves.Root cause, in two parts:
openjdk:alpineis gone. TheopenjdkDocker Hub repository was deprecated years ago and the plainalpinetag has since been removed entirely — pulling it now fails withmanifest unknown.eclipse-temurin:17-jre-alpine,amazoncorretto:17-alpine,alpine:3.18) just traded one failure for another:Unknown mediaType: application/vnd.oci.image.index.v1+json. Docker Hub images have moved to publishing multi-arch manifests as an OCI image index by default, andjib-core 0.13.0(this repo's pinned version,deps.edn) predates that format and only understands the older Docker v2 manifest list.Fix
Point the test at
openjdk:8u212-jre-alpineinstead ofopenjdk:alpine. It's one of the few tags still present in the (frozen, deprecated)openjdkrepository, and — because it predates the OCI-index switch — it still serves a Docker v2 manifest list, whichjib-core 0.13.0can parse.This is a test-fixture-only change (
test/integration/vessel/program_integration_test.clj); no application code is touched.Test plan
master(before this fix) that the same failure reproduces:Vessel: Tried to pull image manifest for registry-1.docker.io/library/openjdk:alpine but failed because: manifest unknown.registry:2container on port 5000 (matching theintegration-testGitHub Actions job'sservices.registry) since the test's later "pushes the built image to the registry" step needs one.make integration-testnow passes:Ran 1 tests containing 12 assertions. 0 failures, 0 errors.make unit-teststill green:47 tests, 164 assertions, 0 failures, 0 errors(unaffected, as expected).🤖 Generated with Claude Code