Update the Artemis Runtime Image Reference
A Docker deployment package can start Artemis from a published Artemis image instead of a local checkout. By default, it runs the image that Artemis CI built from the commit the model was extracted from, the same image that remote deployment packages deploy. This page shows how to pin a different image by its digest instead. You need it when Docker packages should run a specific image, for example a release, whatever commit the model comes from. Remote deployment packages ignore this reference; they always deploy the image of the validation pin.
What the reference controls
The local Docker package contains a self-contained stack,
deployment/remote-image/artemis-feature-model-stack.yml, which runs the image ghcr.io/ls1intum/artemis. The
reference decides which version of this image the stack names:
| Reference | Rendered as | Effect |
|---|---|---|
latest | ghcr.io/ls1intum/artemis:sha-<commit> | Runs the image of the model's source commit; pins no digest |
sha256:<digest> | ghcr.io/ls1intum/artemis@sha256:<digest> | Runs exactly this image, whatever the model's commit |
The reference lives in two places, one for each source mode of the application:
delivery/artemis-runtime-image.jsonfor snapshots. The pipeline copies it into the snapshot'smetadata.json, so a published image of this application always generates the same reference.artemis.feature-model.runtime.image-digestinsrc/main/resources/application.ymlfor local development, which serves the classpath fixture.
Keep both values equal. To return to the image of the model's commit, set both back to latest.
Choose an image digest
Look up the digest of the Artemis image you want, for example the image of a release tag:
docker buildx imagetools inspect ghcr.io/ls1intum/artemis:<tag>
Use the Digest line at the top of the output.
Edit the files
Set the digest in delivery/artemis-runtime-image.json:
{
"image": "ghcr.io/ls1intum/artemis",
"digest": "sha256:<digest>"
}
Set the same value in src/main/resources/application.yml:
artemis:
feature-model:
runtime:
image-digest: sha256:<digest>
Verify
-
Run the pipeline and check that
snapshot/metadata.jsonshows the new value asimageDigest:./gradlew buildFeatureModelSnapshot -PartemisPath=../artemis-extraction -
Run
./gradlew test. -
Start the application, generate a package with the Docker runtime target on the review page of the Configurator, and check the
image:line indeployment/remote-image/artemis-feature-model-stack.yml.
Open a pull request with both files. The next published image carries the new reference.